from types import *

def even(x):
    if x == 0:
        yield "red"
    else:
        yield odd(x-1)

def odd(x):
    if x == 0:
        yield "blue"
    else:
        yield even(x-1)

def foo(generator):
    if isinstance(generator, GeneratorType):
        generator = generator.next()
        foo(generator)
    else:
        print generator

>> g = odd(5)
>> foo(g)
'red'
>>

Generated by matt using scpaste at Sat Jul 9 14:59:55 2011. HADT. (original)