C# 基于字符生成可跳过列表

C# 基于字符生成可跳过列表,c#,string,list,C#,String,List,我很肯定这个问题有一个专门术语,但不幸的是我不知道。 我有一个按字母顺序排列的字符集,要求创建具有最大长度的所有字符的组合 想法是(示例): 生成a、AA、AAA、AAAA、AAAA、AAAA、AAAA的集合 下一个:A,AB,ABA,ABAA,ABAA 下一个A,AB,ABB,ABBA,ABBAA 原因是: 我们必须查询一个提供搜索结果的API 但是如果我没有从AAA上的API中获得搜索命中率,我就不需要再搜索AAAA了,因为它也无法获得搜索命中率。然后我可以转到AAB 问题是: 我的问题

我很肯定这个问题有一个专门术语,但不幸的是我不知道。 我有一个按字母顺序排列的字符集,要求创建具有最大长度的所有字符的组合

想法是(示例):

  • 生成a、AA、AAA、AAAA、AAAA、AAAA、AAAA的集合
  • 下一个:A,AB,ABA,ABAA,ABAA
  • 下一个A,AB,ABB,ABBA,ABBAA
原因是: 我们必须查询一个提供搜索结果的API

但是如果我没有从AAA上的API中获得搜索命中率,我就不需要再搜索AAAA了,因为它也无法获得搜索命中率。然后我可以转到AAB

问题是:

我的问题是,我不确定如何构建代码来实现这一目标。我缺乏结构化的方法。 我已经尝试过嵌套循环,但不幸的是我没有得到结果。 我也使用了组合库,但它们关注其他问题


谢谢你的提示

您要寻找的是一种称为a的特定数据结构,但在您的案例中可能更具体地说是a

Trie数据结构通常用于自动完成之类的事情。通过下图,如果有人键入“te”,我可以遍历Trie并查看之后会出现什么选项(tea、ted、ten)

据我所知,这似乎也适合您的用例


您是否可以查找
yield
上下文关键字?让您有机会通过方法动态生成
IEnumerable
的成员。因此,它可能会增加到字母表中的所有26个字母?您是在寻找关于所有可能组合列表的帮助,还是在寻找关于如何在API调用中跳过生成的逻辑的帮助?是,我知道如何使用
yield
,谢谢。但我的问题是如何在这里产生逻辑。很不清楚你有什么问题。。。显然,在递归解决方案中,有类似于
if(continuerCursion)recursiveCall()else的返回应该生成您想要的列表。。。因此,如果没有真正看到代码,就不可能真正提供帮助……这可能是一种有趣的方法。非常感谢。它可能有点过时,但是可以在这里找到一篇面向.NET的文章,看看类似的东西在实践中是如何工作的-