void print(vector<int>& v){ for(auto ele : v) cout << ele << " "; cout<< endl; } void backtrack(int index, vector<int> ans){ if(index == (ans.size() - 1)){ print(ans); return; } for(int i = index; i < ans.size(); i++){ swap(ans[index], ans[i]); backtrack(index+1, ans); swap(ans[index], ans[i]); } }