给定序列,输出其全排列
import time
def SWAP(i,j):
temp=strAP[i]
strAP[i]=strAP[j]
strAP[j]=temp
strAP=['A','B','C','D']
def CalAllP1(first,num):
if first==num-1: #到达最后一个元素,则退出
return
for i in range(first,num):
if i!=first: #输出时去掉重复
SWAP(i,first)
print(strAP)
CalAllP1(first+1,num) #递归调用,全排列后面的元素
SWAP(i,first)
beginTime=time.clock()
print(strAP)
CalAllP1(0,len(strAP))
endTime=time.clock()
print(endTime-beginTime)
给定序列,按字典序输出排列
import time
def SWAP(i,j):
temp=strAP[i]
strAP[i]=strAP[j]
strAP[j]=temp
strAP=[1,2,3,4]
def Reverse(i,j):
while i<=j:
temp=strAP[i]
strAP[i]=strAP[j]
strAP[j]=temp
i+=1
j-&#