#!/usr/bin/python3
import os
def find_pair(n, pos):
n_keys = list(n.keys())
with open("output{}.txt".format(pos), "w") as fout:
fout.truncate()
while n_keys:
lead = n_keys.pop(0)
group = [lead]
for i in range(10):
s = lead[:pos] + str(i) + lead[pos+1:];
if s in n_keys:
group.append(s)
n_keys.remove(s)
if len(group)>1:
for i in group:
print("{} ==> {}".format(i, n[i][9]), file=fout)
print(file=fout)
if __name__ == '__main__':
with open("charno.txt", "r") as fin:
text = fin.read()
x = text.split()
n = {}
for i in x:
index = i[0:9]
n[index] = i
for i in range(0, 9):
find_pair(n, i)
# End of differential.py
IyEvdXNyL2Jpbi9weXRob24zCmltcG9ydCBvcwoKZGVmICAgICBmaW5kX3BhaXIobiwgcG9zKToKICAgICAgICBuX2tleXMgPSBsaXN0KG4ua2V5cygpKQoKICAgICAgICB3aXRoIG9wZW4oIm91dHB1dHt9LnR4dCIuZm9ybWF0KHBvcyksICJ3IikgYXMgZm91dDoKICAgICAgICAgICAgICAgIGZvdXQudHJ1bmNhdGUoKQogICAgICAgICAgICAgICAgd2hpbGUgbl9rZXlzOgogICAgICAgICAgICAgICAgICAgICAgICBsZWFkID0gbl9rZXlzLnBvcCgwKQogICAgICAgICAgICAgICAgICAgICAgICBncm91cCA9IFtsZWFkXQoKICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMTApOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMgPSBsZWFkWzpwb3NdICsgc3RyKGkpICsgbGVhZFtwb3MrMTpdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHMgaW4gbl9rZXlzOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXAuYXBwZW5kKHMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuX2tleXMucmVtb3ZlKHMpCgogICAgICAgICAgICAgICAgICAgICAgICBpZiBsZW4oZ3JvdXApPjE6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gZ3JvdXA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludCgie30gPT0+IHt9Ii5mb3JtYXQoaSwgbltpXVs5XSksIGZpbGU9Zm91dCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludChmaWxlPWZvdXQpCgppZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgICAgIHdpdGggb3BlbigiY2hhcm5vLnR4dCIsICJyIikgYXMgZmluOgogICAgICAgICAgICAgICAgdGV4dCA9IGZpbi5yZWFkKCkKCiAgICAgICAgeCA9IHRleHQuc3BsaXQoKQoKICAgICAgICBuID0ge30KICAgICAgICBmb3IgaSBpbiB4OgogICAgICAgICAgICAgICAgaW5kZXggPSBpWzA6OV0KICAgICAgICAgICAgICAgIG5baW5kZXhdID0gaQoKICAgICAgICBmb3IgaSBpbiByYW5nZSgwLCA5KToKICAgICAgICAgICAgICAgIGZpbmRfcGFpcihuLCBpKQoKIyBFbmQgb2YgZGlmZmVyZW50aWFsLnB5