/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param str string字符串 
 * @return string字符串一维数组
 */
function Permutation( str ) {
    // write code here
    s=str.split('').sort((a,b)=>b-a).join('')//将字符串进行排序
    //定义返回数组
    const res=[]
    //定义dfs
    function dfs(curr,store){
        //最底部时添加到数组
        if(store.length==0){
           return  res.push(curr)
        }
        for(let i=0;i<store.length;i++){
            //当字符串重复删除
            if(i>0 && store[i]===store[i-1]) {
                console.log(store[i])
                continue
            };
            //dfs递归
            dfs(curr+store[i],store.slice(0,i)+store.slice(i+1))
        }
    }
    //调用执行dfs深度优先遍历
    dfs('',s)
    //返回结果
    return Array.from(new Set(res))
}
module.exports = {
    Permutation : Permutation
};