要制作浅表副本,可以对列表进行切片:
newprefix = prefix[:]
或将其传递给list
构造函数:
newprefix = list(prefix)
另外,我认为您可以稍微简化一下代码:
def perm(prefix, rest):
print prefix, rest
for i in range(len(rest)):
perm(prefix + [rest[i]], rest[:i] + rest[i + 1:])
perm([], ['a','b','c'])