procedure TForm1.Button2Click(Sender: TObject);
const a ='abcdef';
var s:string;
procedure rec (i,j:integer);
begin
s[i]:=a[j];
memo1.lines.add(s);
if i<=length(s) then
if j=length(a) then rec (i+1,2)
else rec (i,j+1);
end;
begin
s:='aaa';
rec(1,1);
end;