Am einfachsten geht's wohl rekursiv. Hier ein Beispielcode
Delphi-Quellcode:
{$apptype console}
program kette;
const
maxlen = 3;
zeichen: string='abc';
procedure genlen(pre: string; len: integer);
var
i: integer;
begin
if len<2 then for i:=1 to length(zeichen) do writeln(pre,zeichen[i])
else for i:=1 to length(zeichen) do genlen(pre+zeichen[i],len-1)
end;
var
len: integer;
begin
for len:=1 to maxlen do genlen('', len);
end.
mit der Ausgabe:
Code:
a
b
c
aa
ab
ac
ba
bb
bc
ca
cb
cc
aaa
aab
aac
aba
abb
abc
aca
acb
acc
baa
bab
bac
bba
bbb
bbc
bca
bcb
bcc
caa
cab
cac
cba
cbb
cbc
cca
ccb
ccc