在Python中生成来自另一个列表的字母组合的字符串列表

时间:2013-08-04 09:23:59

标签: python python-2.7

我有一个字母列表:

>>> alphabet = "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z"
>>> letters = alphabet.lower().split()    
>>> letters
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

我想生成一个字符串列表,如下所示:

a b c d ... z aa ab ac ... az ba bb bc bd ... zx zy zz ... aaa aab ... zzzzz

换句话说,我希望列出每个长度小于或等于该字母的五个字符的单词。

我是否必须编写5个循环或使用递归?什么是最蟒蛇的方式来实现它?你建议采用什么方法?

1 个答案:

答案 0 :(得分:4)

使用itertools.product

>>> from string import ascii_lowercase as al
>>> from itertools import product
>>> lis = ["".join(p) for i in xrange(1,6) for p in product(al, repeat = i)]