一个简单的排列组合算法,代码实现的功能是打印abcdzeq等字母换位组合排列的全部结果。 代码1:不支持datas数字中出现重复元素 public static void main(String[] args) { char datas[] = {'a','b','c','d','z','e','q'}; printResult("",datas); } public static void printResult(String result,char datas[]){ if(result.length() == datas.length){ System.out.println(result); return; } for (int i = 0; i < datas.length; i++){ String data = String.valueOf(datas[i]); if(result.indexOf(data) == -1) { printResult(result+data,datas); } } } 代码2:支持datas数组总出现重复元素 public static void main(String[] args) { char datas[] = {'a','a','b'}; printResult("","",datas); } public static void printResult(String result,String indexs,char datas[]){ if(result.length() == datas.length){ System.out.println(result); return; } for (int i = 0; i < datas.length; i++){ String index = String.valueOf(i); if(indexs.indexOf(index+",") == -1){ printResult(result+datas[i],indexs+i+",",datas); } } }