from __future__ import generators import sys def fib(): (a,b) = (0,1) while 1: yield b # identifies fib() as a generator oldb = b b = a + b; a = oldb def main(): for i in fib(): # output of calls to generator considered a list if i > 100: break # would go forever without this print i if __name__ == '__main__': main()