比如输入abc,a可以变成A,输出他们的全排列 8种,详见测试结果
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
static ArrayList<ArrayList<String>> lists=new ArrayList<>();
public static void main(String[] args) {
// TODO Auto-generated method stub
String a[]={"a","b","c"};
ArrayList<String> list=new ArrayList<>();
recursive (a,0,list);
System.out.println(lists);
}
private static void recursive(String[] a, int index, ArrayList<String> list) {
// TODO Auto-generated method stub
if (index==a.length) {
lists.add(new ArrayList<>(list));
return;
}
list.add(a[index]);
recursive(a, index+1, list);
list.remove(a[index]);
list.add(a[index].toUpperCase());
recursive(a, index+1, list);
list.remove(a[index].toUpperCase());
}
}
测试结果: