find permutations
void find_permutations(vector<int> &array, size_t index, vector<int> current_perm, vector<vector<int>> &res){
if(index == array.size())
res.push_back(current_perm);
else{
for(size_t i = 0; i <= current_perm.size(); ++i){
vector<int> new_perm(current_perm.begin(), current_perm.end());
new_perm.insert(new_perm.begin()+i, array[index]);
find_permutations(array, index+1, new_perm, res);
}
}
}