#include <vector>
class Solution {
public:
    set<string> ans;  //采用集合的方式,自动去掉重复的元素;
    string temp = "";
 
    vector<string> generatePermutation(string s) {
        if(s == "")return {""};

        dp(s, 0);
        
        return vector<string>(ans.begin(), ans.end());   //将set转换成vector,注意构造方式
    }

    void dp(string &s, int index){
        if(index == s.size()){
            ans.insert(temp);
            return;
        }

        temp.push_back(s[index]);
        dp(s, index+1);
        temp.pop_back();
            
        dp(s, index+1);

        return;
    }
};