class Solution {
public:
    /**
     * @param s string字符串 
     * @return string字符串vector
     */
    vector<string> generatePermutation(string s) {
        set<string> st;  // 清除之前的数据
        int n = s.size();
        for (int i = 0; i < (1 << n); ++i) {
            string ss;
            for (int j = 0; j < n; ++j) {
                if ((i >> j) & 1) {
                    ss += s[j];
                }
            }
            st.insert(ss); // 使用set来存储所有可能的子集,自动去重
        }

        // 将set中的元素转存到vector中
        vector<string> result(st.begin(), st.end());
        return result;
    }
};