defAllRange(listx, start, end):if start == end:#当开始等于结尾时结束for i in listx:print(i,end ='')print()for m inrange(start,end+1):
listx[m],listx[start]= listx[start],listx[m]
AllRange(listx, start+1, end)
listx[m],listx[start]= listx[start],listx[m]
list1 =[1,2,3,4]
AllRange(list1,0,3)
一、方法2(利用python自带模块)
import itertools
classSolution:def__init__(self,nums):#初始化一个函数
self.nums=(nums)
self.result=self.permute(self.nums)#自身排列defpermute(self, nums):
A =list(itertools.permutations(nums,len(nums)))#生成全排列for i inrange(len(A)):#遍历将全排列数顺序数封装为集合
A[i]=list(A[i])return A
if __name__=='__main__':
n=int(input("请输入一个数"))
nums =[i for i inrange(1,n+1)]
solution=Solution(nums)#传入列表
Lst=solution.result #print(Lst)