hi-

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

In reply to permutations problem by perlrocks

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.