写了一个字母的,没有输出加号,给你参考:// mm is TMemoprocedure TForm1.Button1Click(Sender: TObject); var s: String; procedure doit(n: Integer; x: String); begin if n = 1 then begin if length(x)>1 then mm.Lines.Add(x); if x <> '' then mm.lines.Add(s[1]+x); end else begin doit(n-1,x); doit(n-1,s[n]+x); end; end;begin s := 'abcd'; doit(4,''); end;
var
s: String; procedure doit(n: Integer; x: String);
begin
if n = 1 then
begin
if length(x)>1 then mm.Lines.Add(x);
if x <> '' then mm.lines.Add(s[1]+x);
end
else
begin
doit(n-1,x);
doit(n-1,s[n]+x);
end;
end;begin
s := 'abcd';
doit(4,'');
end;