用visited来标识是否访问过该数,可以避免数字的重复使用。
n=int(input())
nums=[]
for i in range(1,n+1):
nums.append(i)
p=[]
ans=[]
visit=[False]*n
def pailie(startindex,nums):
if len(p)==n:
ans.append(p[:])
return
for i in range(0,n):
if visit[i]:
continue
else:
p.append(nums[i])
visit[i]=True
pailie(i+1,nums)
p.pop()
visit[i]=False
pailie(0,nums)
print(ans)