esto suena a problema de clase de programación jejeje.
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
const a ='abcdef';
var s:string;
procedure Rec(p:integer);
var i:integer;
begin
for i:=2 to length(a) do
begin
s[p]:=a[i];
memo1.lines.add(s);
end;
if pthen Rec(p+1);
end;
begin
s:='aaa';
memo1.lines.add(s);
rec(1);
end;