我记得这个有一个特定的名字,各个网站上都有示例代码 - 但我记不起它实际上叫什么,所以找不到任何东西......
基本上,我想在循环中生成所有可能的字母组合。输出将是这样的:
A
B
C
...
Z
AA
AB
AC
---
AZ
BA
BB
BC
等...
答案 0 :(得分:5)
从数学角度讲,您正在寻找字母表的cartesian power。
提供的递归adamk是正确的,但您可以稍微简化一下:
void printAllLetterSequences(String prefix, int length) {
System.out.println(prefix);
if (prefix.length() < length)
for (char c = 'A'; c <= 'Z'; c++)
printAllLetterSequences(prefix + c, length);
}
答案 1 :(得分:2)
试试这个(伪代码):
function loop(prefix, max_length):
for c in 'A' to 'Z':
print prefix + c
for c in 'A' to 'Z':
if length(prefix) < max_length:
loop( prefix + c, max_length)
loop('', 2 )