Re: All permutations of a sequence
- To: mathgroup at smc.vnet.net
- Subject: [mg76362] Re: All permutations of a sequence
- From: osbornc at gmail.com
- Date: Sun, 20 May 2007 02:35:10 -0400 (EDT)
- References: <f2h8t7$v4$1@smc.vnet.net>
On May 17, 4:56 am, Virgil Stokes <v... at it.uu.se> wrote: > 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 Hi Virgil, Select[Permutations[x], ((First[#] <= Last[#]) &)] Here x is your list. You will get the permutations where the first element is less than or equal to the last. This fails your criteria if you have some element in your list twice. Assuming no element is used more than once, then there is a bijection between the permutations that satisfy ((First[#] <= Last[#]) &) and those that do not (you can go from a permutation to its "twin" by reversing it). Using <= instead of < should make it handle single-element lists correctly. This does not require the Combinatorica package, at least not in version 6.0. Cheers, Chris