این برنامه تمام جایگشت های یک لیست عدد رو می ده



#include <iostream>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <set>
#include <string>
#include <sstream>
#include <stack>
#include <queue>
#include <map>
#include <numeric>
#include <cstdlib>
#include <cstring>
#include <utility>
#include <functional>
#include <cstdio>
#include <ctime>
using namespace std ;
int main () {
//freopen ("in.in","r",stdin) ;
int n ; cin >> n ;// number of inputs
vector <int> v (n) ;
for(int i = 0 ; i < n;i ++) cin >> v [i] ;
sort (v.begin(),v.end()) ;
do {
for(int i = 0 ; i < n;i ++){
if (i) printf (" ") ;
printf ("%d",v [i]) ;
}
printf ("\n");
}while (next_permutation (v.begin(),v.end())) ;
}