目录
实现代码
/**
* @param chars 总的字符序列(数组)
* @param n 要取出的字符的个数
*/
public static List<List<String>> doit(String[] chars, int n) {
if (n <= 0 || chars == null) {
return null;
}
List<String> charList = new ArrayList<>();
//通过这一步初始化序列的长度
for (int i = 0; i < n; i++) {
charList.add("#");
}
return listAll(charList, chars, n);
}
/**
* 从m个元素中任取n个并对结果进行全排列
*
* @param list 用于承载可能的排列情况的List
* @param chars 总的字符数组,长度为m
* @param n 从中取得字符个数
*/
public static List<List<String>> listAll(List<String> list, String[] chars, int n) {
List<List<String>> res = new ArrayList<>();
if (n