1

在 Python 中,如何生成一个字符串,其中包含一组字符的所有组合,直到一定长度?

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

例如:

a = [0,1] 长度 = 4

结果:

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

4

2 回答 2

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)]
于 2013-09-12T19:24:57.703 回答
3

product从 itertools 模块使用。

>>> 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)]
于 2013-09-12T19:25:03.923 回答