Вероятно, будет грубо по краям;Я только изучаю Java.
class comboMaker {
public static void main(String args[]){
String[] test1 = startCombo(3,6);
prnt(test1);
}
private static String[] startCombo(int len,int digits){
return combos(len,digits,"",0);
}
private static String[] combos(int len,int digits,String cur,int lastdig){
if (len>digits){
return null;
}
if (cur.length()==len){
return new String[]{cur};
}
String tmp = cur;
String[] rtn = {};
for(int i = lastdig+1;i<=digits;i++){
tmp=cur+Integer.toString(i);
rtn=concat(rtn,combos(len,digits,tmp,i));
}
return rtn;
}
private static String[] concat(String[] A, String[] B) {
String[] C= new String[A.length+B.length];
System.arraycopy(A, 0, C, 0, A.length);
System.arraycopy(B, 0, C, A.length, B.length);
return C;
}
private static void prnt(String[] str){
if(str==null){
System.out.println("Invalid string array");
return;
}
for(int i =0;i<str.length;i++ ){
System.out.println(str[i]);
}
}
}
Я включил метод конкатенации массивов, который нашел здесь: Как объединить два массива в Java?
Такжеметод для печати вашего строкового массива, созданного с помощью Combo Maker.