void permutation(vector<vector<int>>& res, vector<int>& num, int index){
if(index >= num.size()){
res.push_back(num);
return;
}
for(int i = index; i < num.size(); i++){
swap(num[i], num[index]);
permutation(res, num, index+1);
swap(num[index], num[i]);
}
}
int main(int argc, const char * argv[]) {
vector<vector<int>>res;
vector<int> vec={1,2,3};
permutation(res, vec, 0);
for(int i = 0; i < res.size(); i++){
for(int j = 0; j < res[0].size(); j++)
cout<<res[i][j]<<" ";
cout<<endl;
}
return 0;
}