#include <string>
#include <unordered_set>
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param str string字符串
* @return string字符串vector
*/
vector<string> ans;
string res = "";
void dfs(string str){
if(str.empty()) {ans.push_back(res);return;}
unordered_set<char> u_set={};
for(size_t i=0;i<str.size();i++){
char tmp = str.at(i);
if(u_set.count(tmp)!=0) continue;
else u_set.insert(tmp);
res += tmp;
str.erase(i,1);
dfs(str);
str.insert(str.begin()+i, res.back());
res.pop_back();
}
}
vector<string> Permutation(string str) {
// write code here
dfs(str);
return ans;
}
};