擅长:python、mysql、java
<p>这在很多方面都是错误的。但我还是要贴出来。这是一个递归的解决方案。在</p>
<pre><code>>>> def pw_vars(in_word, out_word, equivs):
... if not in_word: return [out_word]
... return sum((pw_vars(in_word[1:], out_word + c, equivs) for c in [in_word[0]] + equivs[in_word[0]]), [])
...
>>> pw_vars('foo', '', {'f':['F', '='], 'o':['0', 'O']})
['foo', 'fo0', 'foO', 'f0o', 'f00', 'f0O', 'fOo', 'fO0', 'fOO', 'Foo', 'Fo0',
'FoO', 'F0o', 'F00', 'F0O', 'FOo', 'FO0', 'FOO', '=oo', '=o0', '=oO', '=0o',
'=00', '=0O', '=Oo', '=O0', '=OO']
</code></pre>
<p>我希望我不必说你不应该真的这么做。这个人真的得到这份工作了吗?我很怀疑。在</p>
<p>实际上,虽然我已经意识到DSM的版本更好——几乎可以忍受!这是我对DSM版本的版本,它的价值是什么(不是太多)。这个也符合马克·兰森下面的观点。在</p>
^{pr2}$