C++ 代码
#include<stdio.h>
#define N 10
int n;
int vis[N],res[N];
void dfs(int step)
{
if(step>n)
{
for(int i=1;i<=n;i++)
printf("%d%c",res[i],i==n?'\n':' ');
return;
}
for(int i=1;i<=n;i++)
{
if(vis[i]==0)
{
vis[i]=1;
res[step]=i;
dfs(step+1);
vis[i]=0;
}
}
}//dfs
int main(void)
{
scanf("%d",&n);
dfs(1);
return 0;
}