这是实际起作用的代码。它返回任意长度的给定字符串的所有可能排列
例如: 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:]
它似乎正在函数内部调用自己,但我不确定这将如何产生作用。