样例
N=10
p,st=[0]*N,[False]*N
n=int(input())
def dfs(u):#u代表了正在填第几个坑位
if u==n:#当坑位等于n时说明已经填满了
for i in range(0,n):
print(p[i],end=' ')#按格式进行输出
print()
for i in range(1,n+1):#对每个坑位都要对数字进行遍历
if st[i]!=True:#当数字在前面没被用过时
p[u]=i#利用i填坑
st[i]=True#将数字标记为已用过
dfs(u+1)#填补下一个坑
st[i]=False#当已填满后,对数字进行回溯,要重新标记为没被使用
dfs(0)