perlrocks has asked for the wisdom of the Perl Monks concerning the following question:
My research involves DNA sequences. I have a function that receives lists. Lists received are of arbitrary lengths and the number of lists received cannot be known a priori.
I would like to be able to produce all combinations of the lists' elements while preserving the order of the lists. An example follows:
Suppose we have 3 lists:
list 1: (1,2)
list 2: (a,b)
list 3: (#,*,&)
i would like to produce the following:
1,a,#
1,a,*
1,a,&
1,b,#
1,b,*
1,b,&
2,a,#
2,a,*
2,a,&
2,b,#
2,b,*
2,b,&
PS. I have solutions for the problem that would return the whole list of combinations. However, my combinations (of DNA sequences) tend to be in the thousands even millions and i'm running out of memory! I need a way that would return one combination at a time so i can operate on it, discard it, and get the second combination and so on without having to store the whole list of combinations in memory. I appreciate your help guys but could you please run any code you suggest. If i don't get your code, it's hard for me to fix it :( Thanks a lot
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: permutations problem
by ikegami (Patriarch) on Sep 17, 2009 at 18:26 UTC | |
|
Re: permutations problem
by moritz (Cardinal) on Sep 17, 2009 at 18:27 UTC | |
|
Re: permutations problem
by Fletch (Bishop) on Sep 17, 2009 at 19:13 UTC | |
by perlrocks (Acolyte) on Sep 17, 2009 at 20:09 UTC | |
|
Re: permutations problem
by BrowserUk (Patriarch) on Sep 18, 2009 at 02:11 UTC | |
|
Re: permutations problem
by jdrago_999 (Hermit) on Sep 22, 2009 at 17:59 UTC | |
| A reply falls below the community's threshold of quality. You may see it by logging in. |