我正在寻找一种算法,该算法会返回一个包含x字符和定义长度的所有可能组合的列表。
例如,当我有字符a和b以及长度为2时,我想得到这个输出:
a
b
aa
ab
ba
bb
但我也希望代码可以恢复,这样我就可以保存当前的组合/位置并恢复完全相同的组合/位置。
这是我的第一次尝试,它工作正常,但它不可恢复或至少我不知道该怎么做:
public class test {
static char[] chars = "ab".toCharArray();
static int maxLength = 2;
public static void main(String[] args) {
nextString("");
}
private static void nextString(String s) {
int i = 0;
while (i < chars.length) {
String snew;
snew = s + new Character(chars[i]).toString();
System.out.println(snew);
if (snew.length() <= maxLength - 1)
nextString(snew);
i++;
}
}
}