: depermutation ( seq -- n seq ) dup natural-sort [ [ index ] curry map >factoradic factoradic>integer ] keep ; : factoradic>integer ( factoradic -- n ) [ factorial * ] map-index sum ; : >factoradic ( permutation -- factoradic ) dup [ unclip [ '[ _ over < [ 1 - ] when ] map ] keep ] replicate nip ; usage: ( scratchpad ) "abcd" depermutation [ 1 + ] dip permutation >string . "abdc"