在 Python 中,如何生成一个字符串,其中包含一组字符的所有组合,直到一定长度?
我知道如何使用 itertools 生成所有组合和排列,但我不知道如何生成动态长度的字符串。
例如:
a = [0,1] 长度 = 4
结果:
[0000、0001、0010、0011、0100、0101、0110、0111、1000、1001、1101、1110、1111]
你可以使用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)]
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)]