>>> string str=abc, string prefix=<<<<
__ PERM __: str.Substring(0,0):'' + str.Substring(0 + 1)='bc';
__ PERM __: bc;
prefix='' + str[0]='a'
__ PREFIX __='a'
>>> string str=bc, string prefix=a<<<<
__ PERM __: str.Substring(0,0):'' + str.Substring(0 + 1)='c';
__ PERM __: c;
prefix='a' + str[0]='b'
__ PREFIX __='ab'
>>> string str=c, string prefix=ab<<<<
__ PERM __: str.Substring(0,0):'' + str.Substring(0 + 1)='';
__ PERM __: ;
prefix='ab' + str[0]='c'
__ PREFIX __='abc'
>>> string str=, string prefix=abc<<<<
RESULT:abc
__ PERM __: str.Substring(0,1):'b' + str.Substring(1 + 1)='';
__ PERM __: b;
prefix='a' + str[1]='c'
__ PREFIX __='ac'
>>> string str=b, string prefix=ac<<<<
__ PERM __: str.Substring(0,0):'' + str.Substring(0 + 1)='';
__ PERM __: ;
prefix='ac' + str[0]='b'
__ PREFIX __='acb'
>>> string str=, string prefix=acb<<<<
RESULT:acb
__ PERM __: str.Substring(0,1):'a' + str.Substring(1 + 1)='c';
__ PERM __: ac;
prefix='' + str[1]='b'
__ PREFIX __='b'
>>> string str=ac, string prefix=b<<<<
__ PERM __: str.Substring(0,0):'' + str.Substring(0 + 1)='c';
__ PERM __: c;
prefix='b' + str[0]='a'
__ PREFIX __='ba'
>>> string str=c, string prefix=ba<<<<
__ PERM __: str.Substring(0,0):'' + str.Substring(0 + 1)='';
__ PERM __: ;
prefix='ba' + str[0]='c'
__ PREFIX __='bac'
>>> string str=, string prefix=bac<<<<
RESULT:bac
__ PERM __: str.Substring(0,1):'a' + str.Substring(1 + 1)='';
__ PERM __: a;
prefix='b' + str[1]='c'
__ PREFIX __='bc'
>>> string str=a, string prefix=bc<<<<
__ PERM __: str.Substring(0,0):'' + str.Substring(0 + 1)='';
__ PERM __: ;
prefix='bc' + str[0]='a'
__ PREFIX __='bca'
>>> string str=, string prefix=bca<<<<
RESULT:bca
__ PERM __: str.Substring(0,2):'ab' + str.Substring(2 + 1)='';
__ PERM __: ab;
prefix='' + str[2]='c'
__ PREFIX __='c'
>>> string str=ab, string prefix=c<<<<
__ PERM __: str.Substring(0,0):'' + str.Substring(0 + 1)='b';
__ PERM __: b;
prefix='c' + str[0]='a'
__ PREFIX __='ca'
>>> string str=b, string prefix=ca<<<<
__ PERM __: str.Substring(0,0):'' + str.Substring(0 + 1)='';
__ PERM __: ;
prefix='ca' + str[0]='b'
__ PREFIX __='cab'
>>> string str=, string prefix=cab<<<<
RESULT:cab
__ PERM __: str.Substring(0,1):'a' + str.Substring(1 + 1)='';
__ PERM __: a;
prefix='c' + str[1]='b'
__ PREFIX __='cb'
>>> string str=a, string prefix=cb<<<<
__ PERM __: str.Substring(0,0):'' + str.Substring(0 + 1)='';
__ PERM __: ;
prefix='cb' + str[0]='a'
__ PREFIX __='cba'
>>> string str=, string prefix=cba<<<<
RESULT:cba