string - 语言不可知的生成字符串所有可能排列的列表

  显示原文与译文双语对照的内容
114 4

如何在x 和y 字符之间生成所有可以能排列的字符串列表,包含一个可以变的字符列表。

任何语言都可以,但应该是可移植的。

时间:原作者:0个回答

122 4

有几种方法可以做到这一点。常用方法使用递归。记忆或者动态编程。基本思想是,生成所有长度为 1的字符串列表,然后在每次迭代中,为上一次迭代生成的字符串添加与字符串中的每个字符单独连接的字符串。( 下面代码中的变量索引跟踪最后一次迭代和下一次迭代的开始)

一些伪代码:

list = originalString.split('')
index = (0,0)
list = [""]
for iteration n in 1 to y:
 index = (index[1], len(list))
 for string s in list.subset(index[0] to end):
 for character c in originalString:
 list.add(s + c)

然后,需要删除长度小于x的所有字符串,它们将是列表中第一个( x-1 ) * len(originalString) 条目。

原作者:
...