Lets talk some more basics: perm(x,y) simply permutes y with the permutation x, right? And the regex in the first post of the original thread (lets call it origperm()) does a few different(!) but fixed (if I didn't read the code wrong) permutations.
Now you could just find out the permutation that is the sum of all permutations done on the string. That would be quite fast but not very exiting. Instead you want to calculate each single permutation done by each single invocation of the origperm regex, so that y=perm(yourcalculatedperm_n,y) is equivalent to the nth invocation of y=origperm_n(y) ?
If Ithis is not the case (and I suspect I'm wrong somewhere), please enlighten me/us.
PS: I have not tried to decipher comp(). I assume that it would be a lot faster if you just tell us what it does in mathematical terms. This might be true for your whole question. A math question is best asked in math language
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
 a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
Outside of code tags, you may need to use entities for some characters:

For: 

Use: 
 &   & 
 <   < 
 >   > 
 [   [ 
 ]   ] 
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.

