Posts Tagged ‘combinatorics’
Python combinations
In September 2007, Brian Adkins posted a simple Logo program to print all possible combinations of lists of items, and asked for alternatives in other languages. He provided a Ruby alternative which would translate fairly easily into Python. For my own Python implementation I decided to try a completely different approach:
prod1 = lambda elem, vec : map(lambda x : elem+' '+x, vec)
xprod = lambda vec1, vec2 : reduce(list.__add__, map(lambda elem : prod1(elem ,vec2), vec1))
choices = lambda x : '\n'.join(reduce(xprod, x))+'\n'
q = [['small', 'medium', 'large'],
['vanilla', 'ultra chocolate', 'lychee', 'rum raisin', 'ginger'],
['cone', 'cup']]
print choices(q),