排列按字母顺序排列

时间:2014-04-29 00:24:17

标签: permutation itertools

我想获得从AAAA到ZZZZ的每个排列的列表,我希望列表按字母顺序排列。我该怎么做?

2 个答案:

答案 0 :(得分:0)

你可以这样解决:

alphabet = [chr(item) for item in xrange(ord('A'), ord('Z')+1)]

创建从大写字母A到大写字母Z的字母表。

perms    = itertools.product(alphabet, repeat = 4)

创建一个生成器,该生成器将生成从'AAAA''ZZZZ'

的所有4个字符的排列
results  = sorted((''.join(item) for item in perms))

对结果进行排序(请注意product按字母顺序返回4个字符的元组,因此我们需要将它们与join组合。

答案 1 :(得分:0)

在python标准库中有迭代器的函数,用于高效循环,其名称为itertools。 itertools有排列生成器。

置换函数需要两个参数,一个是可迭代的,另一个是长度,如果iterable是“ABC”,长度是2那么(A,B)(A,C)(B,A)(B,C) )(C,A)(C,B)是该功能的结果。 生成排列