from itertools import takewhile def even_numbers(): i = 0 while True: yield i*2 i += 1 def pred(n): return n < 20 for i in takewhile(pred, even_numbers()): print i,