给你一个方法,自己测试一下!
但以下方法只能算 'A'-'G'
再大的话,TStrings 就不够用了,因为它的资源分配是有限制的。
这样的话,你必须直接在数据库中操作,可用写文件的方法进行。
procedure TForm1.Button1Click(Sender: TObject);
const
a='A';
b='G';
var
i,j:char;
k,t:integer;
sT,Stt:TStrings;
n:array[a..b] of integer;
begin
memo1.clear;
sT:=TStringList.create;
sTt:=TStringList.create;
for i:=a to b do
begin
st.Add(i);
n:=st.count-1;
end;
for i:=succ(a) to b do
begin
stt.clear;
for j:=a to b do
begin
t:=stt.count;
for k:=n[j] to st.count-1 do
begin
stt.add(j+st[k]);
end;
n[j]:=t;
end;
memo1.Lines.AddStrings(stt);
st.Assign(stt);
end;
st.free;
stt.free;
showmessage(inttostr(memo1.Lines.Count ))
end;