#include <vector> class Solution { public: vector<string> ans; set<string> temp; string s; string t; vector<int> used; void arrange(int index){ if(index==s.size()){ if(temp.count(t)==0){ temp.insert(t); ans.push_back(t); } return ; } for(int i=0;i<s.size();i++){ if(used[i]==0){ used[i]=1; t.push_back(s[i]); arrange(index+1); t.pop_back(); used[i]=0; } } } vector<string> Permutation(string str) { this->s=str; // sort(s.begin(),s.end()); used.resize(10); arrange(0); return ans; } };