我将如何生成一个长度为 x 和 y 字符之间的字符串的所有可能排列的列表,其中包含可变的字符列表。
任何语言都可以,但它应该是可移植的。
最佳答案
有多种方法可以做到这一点。常见的方法使用递归、内存或动态编程。基本思想是,生成长度为 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) 条目。
关于string - 生成字符串所有可能排列的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/361/