解法一:
按字母个数依次打印。
public static void main(String[] args){
combine("ABC");
}
/**
* 法一:按照个数依次调用combination递归打印,
* @param str
*/
public static void combine(String str) {
if (str == null)
return;
int length = str.length();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < length; i++) {
combination(str, 0, i, sb);
}
}
/**
* 法一:递归打印
* @param str
* @param index
* @param number
* @param sb
*/
public static void combination(String str, int index, int number, StringBuilder sb){
if (number == -1 ) {
System.out.println(sb.toString());
return;
}
if (index == str.length())
return;
sb.append(str.charAt(index));
combination(str, index + 1, number - 1, sb);
sb.deleteC