如何使用一组字符生成修复长度字符串的组合?

时间:2013-09-12 19:21:31

标签: python itertools

在Python中,如何生成一个包含一组字符长度达到一定长度的字符串的字符串?

我知道如何使用itertools生成所有组合和排列,但我无法弄清楚如何生成动态长度的字符串。

例如:

a = [0,1] 长度= 4

结果:

[0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1101, 1110, 1111]

2 个答案:

答案 0 :(得分:5)

您可以使用itertools.product

li = []
for i in itertools.product([0,1], repeat=4):
    li.append(''.join(map(str, i)))
print (li)

>>> li
['0000', '0001', '0010', '0011', '0100', '0101', '0110', '0111', '1000', '1001', '1010', '1011', '1100', '1101', '1110', '1111']

可能是一个班轮:

[''.join(map(str, i)) for i in itertools.product([0,1], repeat=4)]

答案 1 :(得分:3)

使用itertools模块中的product

>>> from itertools import product
>>> [i for i in product([0,1],repeat=4)]
[(0, 0, 0, 0), (0, 0, 0, 1), (0, 0, 1, 0), (0, 0, 1, 1), (0, 1, 0, 0), (0, 1, 0, 1), (0, 1, 1, 0), (0, 1, 1, 1), (1, 0, 0, 0), (1, 0, 0, 1), (1, 0, 1, 0), (1, 0, 1, 1), (1, 1, 0, 0), (1, 1, 0, 1), (1, 1, 1, 0), (1, 1, 1, 1)]