[Numpy-discussion] combinations anomaly

Alan G Isaac aisaac@american....
Sat Sep 22 19:15:34 CDT 2007


Charles harris posted a generator function for generating 
combinations (based on Knuth's fascicle).  I get the 
expected results by iterating over the resulting generator,
but not if I let ``list`` do that for me.  What is more, 
changing ``arange`` to ``range`` in the code eliminates
this anomaly.

What am I failing to understand here?

Thank you,
Alan Isaac


################  example ###############################
def combinations(n,t):
    c = arange(t + 2)
    c[-2] = n
    c[-1] = 0
    while 1:
        yield c[:t]
        j = 0
        while c[j] + 1 == c[j+1] :
            c[j] = j
            j += 1
        if j >= t :
            return
        c[j] += 1

print "I get the expected results by iterating:"

for tpl in combinations(5,3):
    print tpl

print "However list conversion fails:"

print list(combinations(5,3))
############# end example ###############################




More information about the Numpy-discussion mailing list