Generators are a special class of functions. Regular functions compute an object and return it, but generators return an stream of objects.
def fib():
a, b = 1, 1
while True:
a, b = b, a+b
yield a
The above function will return an infinite stream of Fibonacci numbers:
>>> i = fib()
>>> i.next()
1
>>> i.next()
2
>>> i.next()
3
>>> i.next()
5
>>> for n in i:
... print n,
...
8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657
46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 5702887
9227465 14930352 24157817 39088169 63245986 102334155 ...