import sys def intsfrom(i): while True: yield i i = i + 1 def exclude_multiples(n, ints): for i in ints: if 0 != i % n: yield i def sieve(ints): while True: prime = ints.next() yield prime ints = exclude_multiples(prime, ints) sys.setrecursionlimit(1000000) for i in sieve(intsfrom(2)): print i if i>1000000: break