给定一个包含两个元素的列表,l = [1,0]
我需要创建所有可能的 5 元素重复变化。我试过 itertools.combinations 但给我我想要的。
有了给定n = 2
,k = 5
我应该得到2^5 = 32
元素,结果应该如下所示:
results = [11111,11110,11101,11100,11001,11011,11010,...00000]
给定一个包含两个元素的列表,l = [1,0]
我需要创建所有可能的 5 元素重复变化。我试过 itertools.combinations 但给我我想要的。
有了给定n = 2
,k = 5
我应该得到2^5 = 32
元素,结果应该如下所示:
results = [11111,11110,11101,11100,11001,11011,11010,...00000]
>>> import itertools
>>> ["".join(item) for item in itertools.product("10", repeat=5)]
['11111', '11110', '11101', '11100', '11011', '11010', '11001', '11000', '10111',
'10110', '10101', '10100', '10011', '10010', '10001', '10000', '01111', '01110',
'01101', '01100', '01011', '01010', '01001', '01000', '00111', '00110', '00101',
'00100', '00011', '00010', '00001', '00000']
这相当于循环 0..k^n-1 并以 n 为底输出当前索引。这将您的问题减少到基本转换(本质上相当于长除法)。