Python multi-loop falló cuando con generador e iterador

Necesito un bucle 2D en el que el primer bucle use un iterador y el segundo use un generador, pero esta simple función no funcionó, ¿alguien puede ayudar a verificar?

<code>def alphabet(begin, end):
    for number in xrange(ord(begin), ord(end)+1):
        yield chr(number)

def test(a, b):
    for i in a:
        for j in b:
            print i, j

test(xrange(8, 10), alphabet('A', 'C'))

The result shows:
>>> 8 A
>>> 8 B
>>> 8 c
</code>

no se por que Gracias de antemano si alguien puede ayudar.

Respuestas a la pregunta(2)

Su respuesta a la pregunta