Permuting using any number of given chars

B

Brian Wakem

I can use Algorithm::permute to output all permutations of 1 2 3

123
132
312
213
231
321


But what I'm looking for is all possible permutations using any number of
the input chars.

Like this -

1
2
3
12
13
21
23
31
32
123
132
312
213
231
321


I can't think of a way right now and I can't find a module that does it.
Any ideas?
 
A

Anno Siegel

Brian Wakem said:
I can use Algorithm::permute to output all permutations of 1 2 3

123
132
312
213
231
321


But what I'm looking for is all possible permutations using any number of
the input chars.

Like this -

1
2
3
12
13
21
23
31
32
123
132
312
213
231
321


I can't think of a way right now and I can't find a module that does it.

Split the problem. You know how to get all permutations for a given
set. So find all subsets of the input characters ('', '3', '2', '23', '1',
'13', '12', '123') and apply your solution to each.

for ( subsets( '123') ) {
print_permutations( $_);
}

The definition of subsets() is left as an exercise in recursion.

Anno
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top