编辑代码

#include <iostream>
using namespace std;

int n,a[15],s[15];
bool vis[15];


void dfs(int step = 1)
{
    if(step > n) //回归
    {
        for(int i = 1;i <= n;i++)
        {
            cout<<a[s[i]]<<" ";
        }
        cout<<endl;
        return;
    }
    
    
    for(int i = 1;i <= n;i++)
    {
        if(vis[i] == 0)
        {
            s[step] = i;
            vis[i] = 1;
            dfs(step + 1);
            vis[i] = 0;
        }
    }
    
}

int main()
{
    cin>>n;
    
    for(int i = 1;i <= n;i++)
    {
        cin>>a[i];
    }
    
    dfs();
    
    
    return 0;
}