擅长:python、mysql、java
<h2>第二个版本</h2>
<p>此版本使用一个名为<code>seen</code>的集合,以避免多次测试组合。在</p>
<p>请注意,您的函数<code>isPalindrome()</code>可以简化为单个表达式,所以我删除了它,只进行了内联测试,以避免不必要的函数调用的开销。在</p>
<pre><code>import itertools
aList = [['a', 'a', 'aa'], ['b'], ['a', 'a', 'aa']]
d = []
seen = set()
for I in itertools.product(*aList):
if I not in seen:
seen.add(I)
a = ''.join(I)
if a == a[::-1]:
d.append(a)
print('d: {}'.format(d))
</code></pre>