**
java 求一个不重复字符串 所有排列
**
1.(核心思想)将第一个字符一样的组合 视为一组操作 逐渐细分
2.进行一个组合的是时候 将a字符串的第一个字符移动到末尾,回调方法 将a字符串第一个字符 并入b字符串 (a: 需要下次分离的字符,b:保留字符)
3. 直到字符拆分到只剩两位 将停止拆分 (因为拆到只剩两位的时候 下次拆分 没有意义 )
4.只剩两位没有下次拆分 可以确定字符串 没有再分可能 就可确定这个字符是独有的 拼接上之前的b字符串(b保留字符)
5.调用方法allPossible(“123”, “”);
public static void allPossible(String a, String b) {
if (a.length() > 1) {
for (int i = 0; i < a.length(); i++) {
allPossible(a.substring(1), b + a.substring(0, 1));
a = a.substring(1) + a.substring(0, 1);
if (a.length() == 2) {
System.out.println(b + a);
}
}
}
}