TLE in Unique Permutations

Please can anyone tell me why I am getting TLE in last test case ?
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back

set<vector>s;
bool generate(ll i,ll a[],vectorans,ll n){
if(i==n){
s.insert(ans);
return true;
}
for(int j=i;j!=n;j++){
swap(a[i],a[j]);
ans.pb(a[i]);

    generate(i+1,a,ans,n);
        ans.pop_back();
        swap(a[i],a[j]);
    
}
return false;

}

int main() {
ll n;
cin>>n;
ll a[n];
for(ll i=0;i<n;i++)cin>>a[i];
vectorans;

generate(0,a,ans,n);

for(auto x:s)
{
    for(auto y:x)
    cout<<y<<" ";
    cout<<"\n";
}

}