获取所有可能的单词组合

我有一个n个单词的列表(比方说26)。 现在我想获得所有可能组合的列表,但每行最多k个单词(假设为5)

所以当我的单词列表是:aaa,bbb,…,zzz我想得到:

aaa bbb ... aaabbb aaaccc ... aaabbbcccdddeeefff aaabbbcccdddeeeggg ... 

我想让它变量,以便它可以使用任何n或k值。 应该没有两次任何一个词,每个组合都需要采取(即使有很多)。

我怎么能实现这一目标?

编辑:

谢谢您的回答。 这不是一项任务。 只是我忘记了密码的组合,我想确保我已经测试了所有组合。 虽然我没有26个密码部分,但这使我更容易解释我想要的东西。

如果有其他人有同样的问题,这个链接可能会有所帮助:
在c#中生成单词组合数组

你可以看看这个

但是,如果您需要获得大量组合(数千万),则应使用延迟评估来生成组合。

我写了一个简单的函数来做到这一点

  private string allState(int index,string[] inStr) { string a = inStr[index].ToString(); int l = index+1; int k = l; var result = string.Empty; var t = inStr.Length; int i = index; while (i < t) { string s = a; for (int j = l; j < k; j++) { s += inStr[j].ToString(); } result += s+","; k++; i++; } index++; if(index