<p>我在这个页面上遇到了一个面试问题:(http://newworld-alex.blogspot.com/2009/03/facebook-interviewzz.html)在</p>
<blockquote>
<p>Technical question: In python, given a dictionary of character variations for some word, <em>e.g. dictChars = {"e" : [E, 3], "x" : [X], "a" : [A, @], "m" : [M]}</em> implement a password-cracker-like partial string permutation generator, i.e. produce <em>exaM, exAm, exAM, ex@m, ...</em>. I implemented a simple 3-line recursive solution in Python.</p>
</blockquote>
<p>我有一个用Python编写的解决方案,但我似乎不知道如何像他那样把它变成3行。在</p>
<p>仅供参考,以下是我目前的解决方案:</p>
<pre><code>def allPossiblePasswords(password, mapping):
if len(password) == 0:
return [""]
else:
next = allPossiblePasswords(password[1:], mapping)
if password[0] in mapping:
return [c + n for c in mapping[password[0]] for n in next]
else:
return [password[0] + n for n in next]
</code></pre>
<p>提前谢谢!在</p>