#!/usr/local/bin/kermit + # # With pleasure I implemented the string permutation in C-Kermit attached # here. What C-Kermit can do is limited only by one's own imagination. # # Dat Thuc Nguyen # 16 January 2004 # # \%1 = String to be permuted # \%2 = Length of current segment # define permute { (let n \flength(\%1) cnt 0) local recur define recur { if == \%2 n { (++ cnt) echo \flpad(\m(cnt),5). \%1 } else { local i for i \%2 n 1 { if > i \%2 { asg \%1 \fsubstr(\%1,1,\%2-1)\fsubstr(\%1,i,1)- \fsubstr(\%1,\%2+1,i-\%2-1)\fsubstr(\%1,\%2,1)\fsubstr(\%1,i+1,\flen(\%1)) } recur {\%1} \feval(\%2+1) } } } recur {\%1} 1 echo } echo Testing... permute a # One letter permute ab # Two letters permute abc # Three permute abcd # Four echo To try it yourself type: echo echo { permute "word(s) of your choice"} echo END