擅长:python、mysql、java
<p>在这种情况下可以使用<a href="https://docs.python.org/2/library/itertools.html#itertools.product" rel="nofollow">itertools.product</a>。这实际上取决于<em>加法</em>键的复杂程度:</p>
<pre><code>from itertools import product
for name in map(''.join, product(['a', 'b'], ['', 'Bar'])):
yield name
# ['a', 'aBar', 'b', 'bBar']
</code></pre>
<p><code>product</code>生成元组列表</p>
<pre><code>[('a', ''), ('a', 'Bar'), ('b', ''), ('b', 'Bar')]
</code></pre>
<p>然后<code>map</code>使用<code>''.join</code>函数将每个元组组合成一个字符串(您可以在这里使用列表理解,而不是<code>map</code>,但我认为这会降低可读性,因为它已经在<code>for</code>循环中)。你知道吗</p>
<pre><code>for name in (''.join(t) for t in product(['a', 'b'], ['', 'Bar'])):
</code></pre>