# 定义四个数组# 第一个数组(基字等) - 完整填充221个元素(根据C代码逐行转换)array1 = [ # 基字30 (0x0F40,), (0x0F41,), (0x0F42,), (0x0F44,), (0x0F45,), (0x0F46,), (0x0F47,), (0x0F49,), (0x0F4F,), (0x0F50,), (0x0F51,), (0x0F53,), (0x0F54,), (0x0F55,), (0x0F56,), (0x0F58,), (0x0F59,), (0x0F5A,), (0x0F5B,), (0x0F5D,), (0x0F5E,), (0x0F5F,), (0x0F60,), (0x0F61,), (0x0F62,), (0x0F63,), (0x0F64,), (0x0F66,), (0x0F67,), (0x0F68,), # 基字+下加字24 (0x0F40, 0x0FB1), (0x0F42, 0x0FB1), (0x0F56, 0x0FB1), (0x0F40, 0x0FB2), (0x0F42, 0x0FB2), (0x0F56, 0x0FB2), (0x0F40, 0x0FB3), (0x0F42, 0x0FB3), (0x0F56, 0x0FB3), (0x0F41, 0x0FB1), (0x0F54, 0x0FB1), (0x0F55, 0x0FB1), (0x0F41, 0x0FB2), (0x0F54, 0x0FB2), (0x0F55, 0x0FB2), (0x0F66, 0x0FB2), (0x0F66, 0x0FB3), (0x0F58, 0x0FB1), (0x0F4F, 0x0FB2), (0x0F50, 0x0FB2), (0x0F51, 0x0FB2), (0x0F67, 0x0FB2), (0x0F5F, 0x0FB3), (0x0F62, 0x0FB3), # 前上基20 (0x0F56, 0x0F62, 0x0F90), (0x0F56, 0x0F62, 0x0F92), (0x0F56, 0x0F63, 0x0F90), (0x0F56, 0x0F63, 0x0F92), (0x0F56, 0x0F66, 0x0F90), (0x0F56, 0x0F66, 0x0F92), (0x0F56, 0x0F62, 0x0F94), (0x0F56, 0x0F62, 0x0F99), (0x0F56, 0x0F62, 0x0F9F), (0x0F56, 0x0F62, 0x0FA1), (0x0F56, 0x0F62, 0x0FA3), (0x0F56, 0x0F62, 0x0FA9), (0x0F56, 0x0F66, 0x0F94), (0x0F56, 0x0F66, 0x0F99), (0x0F56, 0x0F66, 0x0F9F), (0x0F56, 0x0F66, 0x0FA1), (0x0F56, 0x0F66, 0x0FA3), (0x0F56, 0x0F66, 0x0FA9), (0x0F56, 0x0F62, 0x0F97), (0x0F56, 0x0F62, 0x0FAB), # 前上基下6 (0x0F56, 0x0F62, 0x0F90, 0x0FB1), (0x0F56, 0x0F62, 0x0F92, 0x0FB1), (0x0F56, 0x0F66, 0x0F90, 0x0FB1), (0x0F56, 0x0F66, 0x0F92, 0x0FB1), (0x0F56, 0x0F66, 0x0F90, 0x0FB2), (0x0F56, 0x0F66, 0x0F92, 0x0FB2), # 上加字基字33 (0x0F62, 0x0F90), (0x0F62, 0x0F92), (0x0F62, 0x0F94), (0x0F62, 0x0F9F), (0x0F62, 0x0FA1), (0x0F62, 0x0FA6), (0x0F63, 0x0F90), (0x0F63, 0x0F92), (0x0F63, 0x0F94), (0x0F63, 0x0F9F), (0x0F63, 0x0FA1), (0x0F63, 0x0FA6), (0x0F66, 0x0F90), (0x0F66, 0x0F92), (0x0F66, 0x0F94), (0x0F66, 0x0F9F), (0x0F66, 0x0FA1), (0x0F66, 0x0FA6), (0x0F62, 0x0F97), (0x0F62, 0x0F99), (0x0F62, 0x0FA8), (0x0F62, 0x0FA3), (0x0F63, 0x0F97), (0x0F63, 0x0FA4), (0x0F66, 0x0F99), (0x0F66, 0x0FA8), (0x0F66, 0x0FA3), (0x0F66, 0x0FA4), (0x0F62, 0x0FA9), (0x0F62, 0x0FAB), (0x0F63, 0x0FA6), (0x0F63, 0x0FB7), (0x0F66, 0x0FA9), # 上基下14 (0x0F62, 0x0F90, 0x0FB1), (0x0F62, 0x0F92, 0x0FB1), (0x0F62, 0x0FA8, 0x0FB1), (0x0F66, 0x0F90, 0x0FB1), (0x0F66, 0x0F92, 0x0FB1), (0x0F66, 0x0FA8, 0x0FB1), (0x0F66, 0x0FA4, 0x0FB1), (0x0F66, 0x0FA6, 0x0FB1), (0x0F66, 0x0F90, 0x0FB2), (0x0F66, 0x0F92, 0x0FB2), (0x0F66, 0x0FA8, 0x0FB2), (0x0F66, 0x0FA4, 0x0FB2), (0x0F66, 0x0FA6, 0x0FB2), (0x0F66, 0x0FA3, 0x0FB2), # 前基下31 (0x0F51, 0x0F42, 0x0FB1), (0x0F51, 0x0F42, 0x0FB2), (0x0F56, 0x0F42, 0x0FB1), (0x0F56, 0x0F42, 0x0FB2), (0x0F56, 0x0F42, 0x0FB3), (0x0F58, 0x0F42, 0x0FB1), (0x0F58, 0x0F42, 0x0FB2), (0x0F60, 0x0F42, 0x0FB1), (0x0F60, 0x0F42, 0x0FB2), (0x0F51, 0x0F40, 0x0FB1), (0x0F51, 0x0F40, 0x0FB2), (0x0F56, 0x0F40, 0x0FB1), (0x0F56, 0x0F40, 0x0FB2), (0x0F56, 0x0F40, 0x0FB3), (0x0F58, 0x0F41, 0x0FB1), (0x0F58, 0x0F41, 0x0FB2), (0x0F60, 0x0F41, 0x0FB1), (0x0F60, 0x0F41, 0x0FB2), (0x0F51, 0x0F56, 0x0FB1), (0x0F51, 0x0F56, 0x0FB2), (0x0F60, 0x0F56, 0x0FB1), (0x0F60, 0x0F56, 0x0FB2), (0x0F51, 0x0F54, 0x0FB1), (0x0F51, 0x0F54, 0x0FB2), (0x0F56, 0x0F66, 0x0FB2), (0x0F56, 0x0F66, 0x0FB3), (0x0F60, 0x0F55, 0x0FB1), (0x0F60, 0x0F55, 0x0FB2), (0x0F51, 0x0F58, 0x0FB1), (0x0F56, 0x0F5F, 0x0FB3), (0x0F60, 0x0F51, 0x0FB2), # 特殊下加字15 (0x0F40, 0x0FAD), (0x0F41, 0x0FAD), (0x0F42, 0x0FAD), (0x0F49, 0x0FAD), (0x0F51, 0x0FAD), (0x0F5A, 0x0FAD), (0x0F5E, 0x0FAD), (0x0F5F, 0x0FAD), (0x0F62, 0x0FAD), (0x0F63, 0x0FAD), (0x0F64, 0x0FAD), (0x0F67, 0x0FAD), (0x0F62, 0x0FA9, 0x0FAD), (0x0F55, 0x0FB1, 0x0FAD), (0x0F42, 0x0FB2, 0x0FAD), #其他 (0x0F42,0x0F51),(0x0F51,0x0F42),(0x0F56,0x0F42),(0x0F56,0x0F51), (0x0F58,0x0F42),(0x0F58,0x0F51), (0x0F60,0x0F42),(0x0F60,0x0F51),(0x0F42,0x0F49),(0x0F42,0x0F53), (0x0F42,0x0F45),(0x0F42,0x0F4F), (0x0F42,0x0F59),(0x0F42,0x0F5E),(0x0F42,0x0F5F),(0x0F42,0x0F64), (0x0F42,0x0F66),(0x0F51,0x0F40), (0x0F51,0x0F56),(0x0F51,0x0F44),(0x0F56,0x0F40),(0x0F56,0x0F45), (0x0F56,0x0F4F),(0x0F56,0x0F59), (0x0F56,0x0F5E),(0x0F56,0x0F5F),(0x0F56,0x0F64),(0x0F56,0x0F66), (0x0F58,0x0F49),(0x0F58,0x0F53), (0x0F58,0x0F44),(0x0F58,0x0F41),(0x0F58,0x0F46),(0x0F58,0x0F47), (0x0F58,0x0F50),(0x0F58,0x0F5A), (0x0F58,0x0F5B),(0x0F60,0x0F56),(0x0F60,0x0F41),(0x0F60,0x0F46), (0x0F60,0x0F47),(0x0F60,0x0F50), (0x0F60,0x0F5A),(0x0F60,0x0F5B),(0x0F42,0x0F61),(0x0F51,0x0F54), (0x0F51,0x0F58),(0x0F60,0x0F55)] # 第二个数组(元音)array2 = [ (0x0F52,), (0x0F54,), (0x0F7C,), (0x0F7E,),] # 第三个数组(有效后加字)array3 = [ (0x0F54,), (0x0F55,), (0x0F57,), (0x0F58,), (0x0F59,), (0x0F5A,), (0x0F5B,), (0x0F5C,), (0x0F5D,),] # 第四个数组(复合辅音)array4 = [ (0x0F54, 0x0F5D), (0x0F55, 0x0F5D), (0x0F58, 0x0F57), (0x0F59, 0x0F5D), (0x0F5A, 0x0F5D), (0x0F5B, 0x0F57), (0x0F5C, 0x0F57),] # 生成所有组合result_basis = []results = []# 第一步:array1的所有元素for item in array1: s = ''.join(chr(c) for c in item) results.append(s) result_basis.append(s)print(len(results),1) #用以判断每阶段值是否正确 # 第二步:array1 × array2for item1 in array1: for item2 in array2: combined = ''.join(chr(c) for c in item1) + ''.join(chr(c) for c in item2) results.append(combined) result_basis.append(combined)print(len(results),2)# 第三步:array1 × array2 × array3for basis in result_basis: for item3 in array3: combined = basis + ''.join(chr(c) for c in item3) results.append(combined)print(len(results),3)# 第四步:result_basis × array4for basis in result_basis: for item4 in array4: combined = basis + ''.join(chr(c) for c in item4) results.append(combined)print(len(results),4)# 写入文件output_path = r"C:\Users\87482\Desktop\作业\遍历藏字.txt"# with open(output_path, 'w', encoding='utf-8') as f:# for line in results:# f.write(line + '\n') print(f"✅ 已生成 {len(results)} 个组合,保存到 {output_path}")上述代码用python实现可以做一份不一样实现结果一样的,代码转换一下,让老师看不出来
最新发布