Привет всем.
Подскажите пожалуйста алгоритм нахождения всех возможных строк из заданной.
Например, дана строка 123456, варианты могут быть любой длины, которая <=6. Если можно, куском кода..
Искал по форуму, но нашел только теоретическую часть.
var
f:textfile;
n,i2,i,k,h,j,sc:integer;
a:array[1..100] of byte;
begin
assignfile(f,'input.txt');
reset(f);
read(f,k);
closefile(f);
fillchar(a, sizeof(a), 0);
n:=6;
sc:=0;
for i:=1 to n do a[i]:=i;
repeat
if (a[1]=k)or(a[1]+a[2]=k)or(a[1]+a[2]+a[3]=k)or(a[1]+a[2]+a[3]+a[4]=k)or(a[1]+a[2]
+a[3]+a[4]+a[5]=k)
or(a[1]+a[2]+a[3]+a[4]+a[5]+a[6]=k) then inc(sc);
i:=n;
while a[i-1]>a[i] do dec(i);
j:=i-1;
h:=a[j];
while a[i+1]>h do inc(i);
a[j]:=a[i]; a[i]:=h;
i:=j+1; k:=n;
while i<k do begin
h:=a[i]; a[i]:=a[k]; a[k]:=h;
inc(i); dec(k)
end
until j=0;
Running "__subset.exe"
3
0 0 0 0 0 0
0 0 1 0 0 1 3
0 1 0 0 1 1 2 3
0 1 1 0 1 0 2
1 0 0 1 1 0 1 2
1 0 1 1 1 1 1 2 3
1 1 0 1 0 1 1 3
1 1 1 1 0 0 1