незнаю как без рекурсии, но с рекурсией так:
Код:
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure replacer( dep : integer);
public
{ Public declarations }
end;
var
Form1: TForm1;
r,s : string;
len : integer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var i,j: integer;
begin
s := Inputbox('','','asd');
len := Length(s);
replacer(0);
end;
procedure TForm1.replacer( dep : integer);
var i : integer;
begin
inc(dep);
for I:= 1 to Len do
begin
r := r + s[ i ];
if dep < len then replacer(dep);
if dep = len then memo1.Lines.Add(r);
delete (r, len,1);
end;
dec(dep);
delete(r, dep, len-dep);
end;