class Solution {
public:
vector<vector<int> > permute(vector<int> &num) {
vector<vector<int> > result;
int n=num.size();
if(n==1) {
result.push_back(num);
return result;
}
vector<int> cur;
vector<vector<int> > tmpResult;
for(int i=0;i<n;i++){
cur=num;
cur.erase(cur.begin()+i);
tmpResult=permute(cur);
for(int j=0;j<tmpResult.size();j++){
tmpResult[j].insert(tmpResult[j].begin(),num[i]);
result.push_back(tmpResult[j]);
}
}
return result;
}
};