delphi编程 字符串取字符进行组合

有一个字符串str,它的值为‘01234’。
现在需要按顺序取4个字符出来进行组合,实现以下效果:
0123
0124
0134
0234
1234

如何才能得到上面的结果??
请高手赐教,谢谢。。

程序代码:

{$apptype console} //设置程序为非图形界面,TURBO PASCAL等无需这一行
var
  n,a,b,c,d:integer;
  s:string;
begin
  s:='01234';
  n:=length(s);
  for a:=1 to n-3 do
    for b:=a+1 to n do
      for c:=b+1 to n do
        for d:=c+1 to n do
          writeln(s[a],s[b],s[c],s[d]);
end.


运行过程:

追问

感谢,结果可以出来。

现在有个问题:
s:='123456789';
要得到以下结果
12345678
12345679
12345689
12345789
12346789
12356789
12456789
13456789
23456789

按照上面的代码思路,是不是要写8个for语句??能不能根据结果字符串的位数来动态给出for语句呢???

追答

取几位就有几个for,如果换了字符串,仍然是取四位,那么程序就不用改,而语句:
s:='01234';
可以修改为:
readln(s);
每次运行的时候输入字符串。

如果你现在需要选择八位,那是需要八个for。无法动态做出for的层次不同的代码。

追问

那如果用二叉树来遍历得出以上结果,应该怎么写??

追答

你这个与 二叉树 有关系吗

温馨提示:答案为网友推荐,仅供参考