#!/usr/bin/env python import itertools import multiprocessing def f(x): return x def g(x): return x def main(): pool = multiprocessing.Pool() i = pool.imap_unordered(f, list(range(10))) i, i2 = itertools.tee(i) results = pool.imap_unordered(g, i) print(list(i2)) for x in results: print(x) if __name__ == '__main__': main()