python代码先附上,解析改天补上。
class DFS():
def __init__(self,n):
self.numlen=n
self.result=[0 for i in range(n)]
self.book=[0 for i in range(n)]
def dfs(self,s):
step=s-1
if step==self.numlen:
r=''
for i in range(self.numlen):
r+=str(self.result[i])
print(r)
return
for i in range(self.numlen):
if self.book[i]==0:
self.result[step]=i+1
self.book[i]=1
self.dfs(s+1)
self.book[i]=0
#print(i,self.book[i])
return
dfs=DFS(4)
dfs.dfs(1)