擅长:python、mysql、java
<p>这不是一个真正的答案,但代码太大,无法作为评论发布。使用<code>split</code>内置函数可以大大缩短代码。下面是一个有6个数字(不带括号)的工作示例。我想下面的代码可以通过使用<code>itertools</code>进行进一步优化:</p>
<pre class="lang-py prettyprint-override"><code>import itertools
expression='1?2?3?4?5?6'
opr = ['+', '-', '*', '/']
sp = expression.split('?')
products = list(itertools.product(opr, repeat=len(sp)-1))
for product in products:
expression = [ sp[i]+product[i] for i in range(0,len(product))]
expression.append(sp[len(sp)-1])
expression = ''.join(expression)
print(expression)
</code></pre>