擅长:python、mysql、java
<p>我不认为你想要一个列表理解。我认为发电机在这里会更好:</p>
<pre><code>def generate(x):
for digits in itertools.count(1):
for i in itertools.product(range(1, 10), repeat=digits):
if reduce(operator.mul, i) == x:
yield i
if (math.pow(2, digits) > x):
break
</code></pre>
<p>然后你做<code>for i in generate(input_number)</code>。在</p>
<p>(顶部还需要<code>import itertools</code>、<code>from functools import reduce</code>和{<cd4>})。在</p>
<p>在((数学.pow(2,数字)>;x)只是中断条件。)</p>