in reply to Unique Character Combinations

Well, you certainly win the prize for most concise code, and no doubt for speed too. I can't for the life of me figure out how it works, tho.

Replies are listed 'Best First'.
Re^2: Unique Character Combinations
by Roy Johnson (Monsignor) on May 03, 2005 at 00:39 UTC
    I'm guessing that this reply was intended for me, regarding the glob solution. Whenever the subject of combinations comes up, a glob solution usually shows up, and someone who hasn't seen it used that way before is delighted or baffled or both.

    As the documentation tells you, glob takes a pattern and expands it into all the filenames that the shell would. Of course, we're not dealing with filenames here, but for alternations ({this,that}), glob doesn't really look at filenames. It just generates all the combinations.

    So all I did was construct a glob pattern of {A,}{B,}{C,} etc., and glob came up with the strings that matched. Having the empty string as an alternative (as I did) is legal in globs.

    Running a quick benchmark, I find that, including the sort I mention in 453284, glob is about 2.5x as fast as your solution, while powerset is 2x-or-so as fast as the glob.


    Caution: Contents may have been coded under pressure.