Vom Ansatz her könnte es wie unten gehen. Da gerade ohne Delphi nur ungetestet.
Delphi-Quellcode:
var
stellen, max, i, j : Integer;
pos : Array of Integer;
s : String;
begin
stellen := 3;
max:= 15;
SetLength(pos, stellen);
for i:= 0 To stellen-1 do
pos[i]:=1;
for i:= 1 to max*stellen
begin
s:='';
Inc(pos[0]);
for j:=0 To stellen -1 do
if pos[j]=max+1 then
begin
pos[j]:=1;
Inc(pos[j+1]);
end;
for j:=0 To stellen -1 do
s:=s+IntToStr(pos[j]);
Memo_Output.Lines.Add(s);
end;
end;
Edit:
for i:= 1 to max*stellen //Das muss natürlich max hoch stellen sein, wie ich bei BUG gesehen habe