所以我有一个包含十四个项目的数组。每个项目可以是0或1.我正在寻找帮助找出这些数字的每个组合。我已经尝试过itertools,但我似乎无法按照我的意愿让它工作。我的意思是这个例子。
for i in range(0, 15):
if i%2 == 0:
array1.append(b)
else:
array1.append(c)
for i in range(0, 14):
for L in range(14, 15):
for subset in itertools.combinations(array1, L):
if s != str(subset):
s = str(subset)
y += 1
print(subset)
这是代码,但显而易见的麻烦是数组按照确切的顺序填充然后r但我需要的是每个都可以互换。
加起来十四。有没有人有任何想法如何实现这一目标?
答案 0 :(得分:6)
您可以使用itertools.product
:
itertools.product([0, 1], repeat=14)
您可以通过以下方式获取这些结果的列表:
list(itertools.product([0, 1], repeat=14))
或者你可以通过以下方式迭代所有可能性:
for item in itertools.product([0, 1], repeat=14):
print item
答案 1 :(得分:0)
一种简单的方法是从0
计数到(1 << 14) - 1
,然后考虑计数器的所有二进制数字;在Python中:
for i in xrange(1 << 14):
bits = [(i >> k) & 1 for k in xrange(14)]
... use bits array ...