此问题已经在这里有了答案:
这里是实际起作用的代码。它返回任意长度的给定字符串的所有可能排列例如: Permutations('ab') returns ['ab','ba]
def permutations(string):
if len(string) == 1: return set(string)
first = string[0]
rest = permutations(string[1:]) #This is the line that i do not understand
result = set()
for i in range(0, len(string)):
for p in rest:
result.add(p[0:i] + first + p[i:])
return result
我不知道rest = permutations(string[1:])
行在上面的评论。我尝试像这样rest = string[1:]
编写它,但是当这样编写时它不能正常工作。
这两行代码之间有什么区别?
rest = permutations(string[1:])
和
rest = string[1:]
它似乎在函数内部调用了自己,但是我不确定这将如何起作用。