def permutations(arr, position, end):
if position == end:
for i in arr:
f.write(str(i))
f.write("\n")
else:
for index in range(position, end):
arr[index], arr[position] = arr[position], arr[index]
permutations(arr, position+1, end)
arr[index], arr[position] = arr[position], arr[index]
with open("test.txt", "w") as f:
arr=["abc", "def", "ghi", "jkl", "mno", "pqr", "stu", "vwx", "yz"]
permutations(arr, 0, len(arr))
第二段代码在上面基础上,修改为了用栈进行运算,而不是递归,状态记录方式改为状态压缩,用二进制进行计算,理论上可以处理log2(sizeof(unsigned long long))长度的keys,懒得检测了
下面是这次检测的字符集
发不出来肯定是数据集的锅 ̄﹃ ̄
这段代码在第一版代码基础上优化了对于重复字符集的判断和重复前缀的判断
原数据集太小了,就换了个数据集
生成数据集的python代码也放这里
数据集一共36万行,最后随机选取其中一部分,
是不是很寂寞
很鸡儿寞
卧槽,碉堡了老铁