Michael Tobis wrote: > I want a list of all ordered permutations of a given length of a set > of tokens. Each token is a single character, and for convenience, they > are passed as a string in ascending ASCII order. > > For example > > permute("abc",2) > > should return ["aa","ab","ac","ba","bb","bc","ca","cb","cc"]
If N is constant and small (e.g hard-coded N of 2), list comprehensions provide a concise solution: a = "abc" b = [(x,y) for x in a for y in a] c = ["".join(z) for z in b] print b print c Gives: [('a', 'a'), ('a', 'b'), ('a', 'c'), ('b', 'a'), ('b', ' a'), ('c', 'b'), ('c', 'c')] ['aa', 'ab', 'ac', 'ba', 'bb', 'bc', 'ca', 'cb', 'cc'] Cheers, Chris -- http://mail.python.org/mailman/listinfo/python-list