递归
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<iostream>
#include<queue>
using namespace std;
typedef long long ll;
const ll N=1e4+10;
int a[N];
int n;
void fun(int k)
{
if(k>=n)
{
for(int i=1;i<=n;i++)
printf("%d ",a[i]);
printf("\n");
return;
}
else
{
for(int i=k;i<=n;i++)
{
swap(a[k],a[i]);
fun(k+1);
swap(a[k],a[i]);
}
}
}
int main()
{
freopen("in.txt","r",stdin);
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
fun(1);
fclose(stdin);
return 0;
}