Re: All permutations of a sequence
- To: mathgroup at smc.vnet.net
- Subject: [mg76323] Re: All permutations of a sequence
- From: "Sem" <sarner2006-sem at yahoo.it>
- Date: Sat, 19 May 2007 04:51:56 -0400 (EDT)
- References: <f2h8t7$v4$1@smc.vnet.net>
Hi Virgil,
the above code produces all the permutations of a list, except those that
reverse their ordering.
The function is recursive but I suppose that an iterative algorithm can be
wrote easily, i.e. for large list.
<< DiscreteMath`Combinatorica`
NotReversingPermutations[l_List] := {l} /; Length[l] <= 2
NotReversingPermutations[l_List] :=
Module[
{e = Last[l], n = Length[l], r},
r = Table[Insert[#, e, -i], {i, 1, n}] & /@
NotReversingPermutations[Drop[l, -1]];
Flatten[r, 1]
];
HTH
Regards,
Sem
>"Virgil Stokes"
>I would like to get all unique permutations of a sequence (e.g.
> {1,2,3,4,5,6,7,8,9,10,11,12,13}) with the constraint that all sequences
> that have an opposite ordering are not included (e.g. {13, 12,
> 11,10,9,8,6,5,4,3,2,1}) would not be included.
>
> Are there some Mathematica commands that can be used to efficiently
> generate these permutations?
>
> --V. Stokes
>