擅长:python、mysql、java
<p>一种方法是将<code>itertools.product</code>与<code>numpy.prod</code>和<code>numpy.power</code>一起使用:</p>
<pre><code>import numpy as np
from itertools import product
f = [2, 2, 3, 5, 5]
uniq_f = np.unique(f)
counts = np.array(list(product(*(range(f.count(i) + 1) for i in uniq_f))))
sorted(np.prod(np.power(uniq_f, counts), 1))
</code></pre>
<p>输出:</p>
<pre><code>[1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 25, 30, 50, 60, 75, 100, 150, 300]
</code></pre>