擅长:python、mysql、java
<p>您可以使用itertools的乘积方法检查n个数组之间的所有组合</p>
<p>例如:</p>
<pre><code>import itertools
a = [1,2]
b = ['a' , 'b']
c = list(itertools.product(a,b))
>> [(1, 'a'), (1, 'b'), (2, 'a'), (2, 'b')]
</code></pre>
<p>因此,如果您想知道构成给定数字的所有组合,只需在最终列表中迭代并检查所有结果</p>
<pre><code>import itertools
x1 = range(25,35)
x2 = range(28,36)
x3 = range(15,20)
result = []
for item in list(itertools.product(x1,x2,x3)):
if sum(item) == 75:
result.append(item)
print(result)
>> [(25, 31, 19), (25, 32, 18), (25, 33, 17), (25, 34, 16), .....]
</code></pre>
<p>如果您以前不知道范围的数量,只需在itertools.product中使用*运算符,代码将是相同的</p>
<pre><code>ranges = [range(1,5), range(5,29), range(3, 400), ...]
#STUFF
itertools.product(*ranges)
</code></pre>