看了下别人的答案,复杂的要死,分享一下我自己写的
代码很简单,核心思路:
1、使用TreeSet进行排序
2、对字符串裁切

public ArrayList<String> Permutation(String str) {
    TreeSet<String> treeSet = new TreeSet<>();
    cal(treeSet, str, "");
    return new ArrayList<>(treeSet);
}

public void cal(TreeSet<String> set, String str, String ss) {
    if (str.length() == 1) {
        set.add(ss + str);
    } else {
        char[] chars = str.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            cal(set, str.substring(0, i) + str.substring(i + 1, str.length()), ss+chars[i]);
        }
    }
}