Generate all combinations up to X length from List<string> of words
===

how would I go about generating a list of all combinations of words up to a certain length from a `List<string>` source?

For example, I have a `List<string>` of 10,600+ words which I need to convert to a `List<List<string>>`, however, the sub list only needs to contain combinations to a maximum length of 3 words.

I don't care about the order in which the words appear in the sub list. For example, I only need 1 of the following in the list:

    "laptop", "computer", "reviews" 
    "laptop", "reviews, "computer"
    "computer", "laptop", "reviews" 
    "computer" "reviews", "laptop"
    "reviews", "computer", "laptop" 
    "reviews", "laptop", "computer"

Any help is much appreciated.

