擅长:python、mysql、java
<p>这样的方法应该有效:</p>
<pre><code>import itertools
mapping = {
'v': 'aeiou',
'c': 'bcdfghjklmnpqrstvwxyz'
}
pattern = 'vcvcv'
for thing in itertools.product(*map(mapping.get, pattern)):
print ''.join(thing)
</code></pre>
<p>大致如下:</p>
<ul>
<li><code>map(mapping.get, pattern)</code>只是将<code>'vcv'</code>转换为<code>['aeiou', 'bcdfghjklmnpqrstvwxyz', 'aeiou']</code>。它用相应的字符列表替换每个字母。在</li>
<li><code>*map(...)</code>解压缩参数列表。在</li>
<li><code>itertools.product()</code>就像一堆嵌套的for循环。在</li>
<li><code>''.join(thing)</code>将字符列表联接到单个字符串中。在</li>
</ul>
<p>如果您想在不使用<code>itertools</code>的情况下执行此操作,则必须创建一个递归函数。在</p>