@ETFBitcoin and @NotATether
I wanna share this with you both. I did it thanks to your suggestions.
Following ETFBitcoin library suggestion (which is pretty fast btw) I made a code that generated this matrix (we had to delete some words and now we only have 2005).
as you can see, this matrix shows levenshtein distance of all 2005 words with each other in a loop. As 0 compared to 0 is the same word, it is distance is 0. As 1 compared to 1 is also 0, you can see a diagonal line comparing the same words as zero until the end of the last row.
I was able to identify all the values where distance was 1 and I generated a dictionary with those coordinates in the matrix:
{1: 164, 4: 182, 16: 1521, 23: 516, 31: 567, 32: 33, 33: 32, 35: 67, 39: 677, 51: 1305, 57: 126, 60: 51, 67: 35, 75: 78, 76: 1261, 78: 75, 83: 1655, 103: 107, 104: 140, 105: 106, 106: 105, 107: 103, 117: 1376, 126: 57, 128: 690, 140: 1928, 148: 176, 158: 178, 161: 1767, 164: 1, 166: 1910, 169: 1914, 175: 181, 176: 148, 178: 158, 181: 175, 182: 4, 183: 1019, 187: 221, 188: 205, 190: 697, 194: 234, 195: 1681, 200: 708, 205: 188, 220: 730, 221: 187, 228: 247, 231: 236, 233: 1610, 234: 194, 235: 236, 236: 235, 238: 228, 244: 750, 245: 1617, 247: 228, 252: 255, 254: 1869, 255: 252, 266: 471, 270: 292, 272: 1237, 274: 672, 280: 1102, 281: 1642, 283: 678, 284: 286, 286: 1528, 287: 280, 292: 270, 313: 1135, 314: 318, 315: 1538, 317: 1373, 318: 347, 321: 1014, 329: 1384, 338: 1928, 340: 341, 341: 340, 343: 703, 345: 348, 346: 621, 347: 318, 348: 345, 371: 886, 382: 1598, 395: 408, 399: 976, 402: 737, 403: 405, 405: 403, 408: 1202, 426: 446, 427: 1833, 432: 438, 433: 1214, 438: 432, 439: 433, 443: 1844, 446: 426, 461: 338, 466: 1497, 471: 266, 474: 795, 493: 1573, 516: 23, 517: 1590, 523: 1429, 538: 1976, 539: 550, 540: 544, 542: 538, 544: 1076, 549: 1082, 550: 539, 554: 1279, 557: 857, 567: 31, 568: 726, 613: 659, 619: 1585, 621: 346, 627: 635, 635: 627, 659: 1947, 672: 274, 677: 39, 678: 283, 687: 705, 690: 128, 691: 725, 694: 1027, 696: 1677, 697: 703, 699: 1394, 702: 710, 703: 705, 705: 703, 708: 760, 710: 1811, 715: 1957, 724: 715, 725: 691, 726: 568, 730: 220, 733: 1095, 735: 1073, 737: 402, 740: 1451, 742: 1207, 746: 1214, 747: 1838, 748: 742, 750: 244, 758: 761, 759: 1573, 760: 708, 761: 1862, 764: 759, 765: 1615, 768: 769, 769: 768, 770: 773, 771: 991, 773: 770, 782: 51, 785: 1002, 790: 792, 792: 790, 794: 1923, 795: 785, 798: 802, 801: 1681, 802: 798, 803: 1799, 825: 1196, 827: 1450, 834: 1614, 839: 1851, 842: 1468, 846: 1321, 853: 1878, 857: 557, 859: 1090, 882: 1458, 886: 371, 896: 1092, 912: 915, 915: 912, 919: 945, 945: 919, 955: 1717, 958: 971, 961: 1361, 969: 1381, 971: 958, 973: 1393, 976: 399, 978: 1073, 979: 978, 987: 989, 989: 987, 991: 771, 993: 1334, 997: 1102, 1002: 785, 1010: 997, 1014: 321, 1015: 1025, 1016: 1143, 1018: 1379, 1019: 183, 1025: 1015, 1027: 694, 1028: 1053, 1031: 1155, 1036: 1801, 1038: 1573, 1042: 1414, 1044: 1038, 1046: 1042, 1048: 1065, 1051: 1055, 1053: 1028, 1054: 1070, 1055: 1051, 1057: 1307, 1058: 1962, 1063: 1069, 1065: 1066, 1066: 1065, 1069: 1600, 1070: 1054, 1073: 978, 1074: 1716, 1075: 1829, 1076: 1074, 1077: 1205, 1082: 549, 1087: 1738, 1090: 1094, 1092: 896, 1094: 1090, 1095: 733, 1098: 1112, 1102: 997, 1112: 1113, 1113: 1112, 1122: 1654, 1131: 1166, 1134: 1920, 1135: 313, 1143: 1016, 1147: 1381, 1154: 1928, 1155: 1031, 1166: 1131, 1169: 1154, 1177: 1184, 1184: 1177, 1195: 1607, 1196: 1200, 1200: 1196, 1202: 408, 1203: 1305, 1205: 1207, 1207: 1205, 1214: 746, 1221: 1147, 1225: 1624, 1231: 1225, 1237: 1248, 1248: 1381, 1252: 1385, 1261: 76, 1268: 1277, 1272: 1332, 1277: 1268, 1279: 554, 1305: 1203, 1307: 1057, 1321: 1339, 1332: 1272, 1334: 1844, 1339: 1321, 1346: 1360, 1358: 1775, 1360: 1346, 1361: 961, 1367: 1381, 1373: 317, 1374: 1413, 1376: 117, 1379: 1461, 1381: 1468, 1384: 329, 1385: 1252, 1392: 1395, 1393: 1413, 1394: 699, 1395: 1392, 1398: 1931, 1403: 1686, 1405: 1573, 1409: 1413, 1413: 1409, 1414: 1415, 1415: 1414, 1429: 523, 1448: 2001, 1450: 827, 1451: 1452, 1452: 1451, 1454: 1829, 1456: 1458, 1457: 1462, 1458: 1456, 1461: 1379, 1462: 1620, 1464: 1462, 1468: 1477, 1470: 1468, 1473: 1478, 1477: 1585, 1478: 1473, 1485: 1491, 1491: 1485, 1495: 1501, 1497: 466, 1501: 1495, 1519: 1527, 1521: 16, 1523: 1908, 1524: 1767, 1525: 1541, 1527: 1519, 1528: 286, 1529: 1771, 1538: 1541, 1541: 1538, 1548: 1568, 1551: 1574, 1556: 1559, 1559: 1673, 1564: 1574, 1568: 1548, 1571: 1801, 1573: 1405, 1574: 1564, 1585: 1811, 1590: 1600, 1596: 1600, 1598: 382, 1600: 1596, 1607: 1195, 1608: 1980, 1610: 233, 1612: 1829, 1614: 834, 1615: 765, 1617: 245, 1620: 1462, 1624: 1225, 1631: 1644, 1635: 1905, 1637: 1638, 1638: 1637, 1642: 281, 1644: 1631, 1654: 1122, 1655: 83, 1659: 1662, 1662: 1659, 1667: 1681, 1668: 1713, 1673: 1559, 1677: 1681, 1679: 1795, 1681: 1700, 1686: 1403, 1687: 1804, 1695: 1946, 1700: 1681, 1713: 1668, 1715: 1730, 1716: 1721, 1717: 1736, 1721: 1716, 1727: 1730, 1730: 1727, 1736: 1717, 1738: 1754, 1749: 1738, 1754: 1738, 1767: 1524, 1768: 1775, 1769: 1910, 1771: 1769, 1775: 1768, 1788: 1795, 1790: 1798, 1791: 1799, 1793: 1928, 1795: 1788, 1798: 1790, 1799: 1791, 1801: 1571, 1804: 1687, 1811: 1585, 1822: 1851, 1824: 1872, 1829: 1612, 1833: 1824, 1834: 1840, 1838: 747, 1840: 1834, 1844: 1334, 1851: 1822, 1859: 1872, 1862: 1859, 1869: 254, 1872: 1859, 1878: 853, 1884: 1888, 1885: 1888, 1888: 1885, 1905: 1925, 1906: 1991, 1907: 1949, 1908: 1924, 1909: 1912, 1910: 1914, 1912: 1909, 1914: 1910, 1920: 1966, 1923: 1972, 1924: 1908, 1925: 1905, 1928: 1793, 1931: 1398, 1932: 1933, 1933: 1932, 1946: 1695, 1947: 659, 1949: 1966, 1953: 1970, 1955: 1970, 1957: 1959, 1959: 1957, 1962: 1058, 1966: 1949, 1970: 1955, 1972: 1923, 1976: 538, 1977: 2000, 1980: 1984, 1984: 1980, 1985: 1986, 1986: 1985, 1991: 1906, 2000: 1977, 2001: 1448}
Now it was easy. With the coordinates in the matrix, I just generated an array with all collided pairs:
['abaixo - baixo',
'abater - bater',
'achar - rachar',
'adiante - diante',
'afetivo - efetivo',
'aflito - afoito',
'afoito - aflito',
'agora - amora',
'agulha - fagulha',
'alho - olho',
'altitude - atitude',
'alvo - alho',
'amora - agora',
'anel - anil',
'anexo - nexo',
'anil - anel',
'anta - santa',
'arca - arma',
'areia - aveia',
'argila - argola',
'argola - argila',
'arma - arca',
'assado - passado',
'atitude - altitude',
'ator - fator',
'aveia - veia',
'babado - barbado',
'bagulho - barulho',
'bainha - tainha',
'baixo - abaixo',
'bala - vala',
'balsa - valsa',
'barata - batata',
'barbado - babado',
'barulho - bagulho',
'batata - barata',
'bater - abater',
'batido - latido',
'beato - boato',
'beco - bico',
'beira - feira',
'beliche - boliche',
'belo - selo',
'besta - festa',
'bico - beco',
'bloco - floco',
'boato - beato',
'bode - boxe',
'boldo - bolso',
'bolha - rolha',
'boliche - beliche',
'bolo - bolso',
'bolso - bolo',
'bonde - bode',
'bossa - fossa',
'botina - rotina',
'boxe - bode',
'briga - brita',
'brincar - trincar',
'brita - briga',
'busto - custo',
'cabelo - camelo',
'cabo - nabo',
'cabuloso - fabuloso',
'cadeira - madeira',
'caibro - saibro',
'caixa - faixa',
'cajado - calado',
'calado - ralado',
'caldeira - cadeira',
'camelo - cabelo',
'carinho - marinho',
'carneiro - carteiro',
'caro - raro',
'carreira - parreira',
'carteiro - certeiro',
'casca - lasca',
'causar - pausar',
'ceia - veia',
'cenoura - censura',
'censura - cenoura',
'cera - fera',
'cereja - cerveja',
'cerrado - errado',
'certeiro - carteiro',
'cerveja - cereja',
'cidade - idade',
'cisco - risco',
'coceira - coleira',
'coelho - joelho',
'coice - foice',
'coifa - coisa',
'coisa - coifa',
'coleira - moleira',
'copeiro - coveiro',
'copo - topo',
'corja - coruja',
'corno - morno',
'coruja - corja',
'corvo - corno',
'couro - touro',
'coveiro - copeiro',
'cuia - ceia',
'cunhado - punhado',
'custo - busto',
'data - gata',
'dente - rente',
'diante - adiante',
'dica - rica',
'dinheiro - pinheiro',
'doador - voador',
'dobrado - dourado',
'doca - dona',
'domador - doador',
'dona - lona',
'dotado - lotado',
'dourado - dobrado',
'dublado - nublado',
'dueto - gueto',
'efetivo - afetivo',
'eixo - fixo',
'enxame - exame',
'ereto - reto',
'errado - cerrado',
'escola - esmola',
'esmola - escola',
'exame - vexame',
'fabuloso - cabuloso',
'fagulha - agulha',
'faixa - caixa',
'farpa - ferpa',
'fator - ator',
'favela - fivela',
'febre - lebre',
'feio - seio',
'feira - fera',
'feixe - peixe',
'feno - feto',
'fera - ferpa',
'ferpa - fera',
'festa - fresta',
'feto - teto',
'figa - viga',
'fita - figa',
'fivela - favela',
'fixo - eixo',
'floco - bloco',
'fluxo - luxo',
'fogo - logo',
'foice - coice',
'folia - polia',
'fonte - monte',
'forno - morno',
'forrar - torrar',
'forte - fonte',
'fossa - bossa',
'freio - frevo',
'frente - rente',
'fresta - festa',
'frevo - trevo',
'fronte - frente',
'frota - rota',
'fundo - fungo',
'fungo - fundo',
'funil - fuzil',
'furado - jurado',
'fuzil - funil',
'galho - alho',
'gama - lama',
'garoupa - garupa',
'garupa - garoupa',
'gasto - vasto',
'gata - gama',
'geada - gemada',
'gelo - selo',
'gemada - geada',
'gemido - temido',
'goela - moela',
'goleiro - poleiro',
'gosto - rosto',
'gralha - tralha',
'grato - prato',
'grelha - orelha',
'gruta - truta',
'gueto - dueto',
'gula - lula',
'horta - porta',
'idade - cidade',
'ilustre - lustre',
'incolor - indolor',
'indolor - incolor',
'inferno - inverno',
'inverno - inferno',
'isolado - solado',
'jaca - jeca',
'janela - panela',
'jato - pato',
'jeca - jaca',
'jeito - peito',
'joelho - coelho',
'jogo - logo',
'joio - jogo',
'julho - junho',
'junho - julho',
'jurado - furado',
'juro - ouro',
'ladeira - madeira',
'lama - gama',
'lareira - ladeira',
'lasca - casca',
'laser - lazer',
'lastro - mastro',
'latente - patente',
'latido - batido',
'lazer - laser',
'lebre - febre',
'legado - ligado',
'leigo - meigo',
'lenda - tenda',
'lente - rente',
'lesado - pesado',
'leste - lente',
'levado - lesado',
'liberal - literal',
'licitar - limitar',
'ligado - legado',
'ligeiro - lixeiro',
'limitar - licitar',
'limpo - olimpo',
'linda - vinda',
'lisa - lixa',
'literal - litoral',
'litoral - literal',
'lixa - rixa',
'lixeiro - ligeiro',
'logo - jogo',
'loja - soja',
'lombo - tombo',
'lona - loja',
'longe - monge',
'lotado - dotado',
'luar - suar',
'lula - luva',
'lustre - ilustre',
'luva - lula',
'luxo - fluxo',
'machado - malhado',
'madeira - ladeira',
'malhado - malvado',
'malvado - malhado',
'mangue - sangue',
'marcador - mercador',
'margem - vargem',
'marinho - carinho',
'mastro - lastro',
'mato - pato',
'meia - veia',
'meigo - leigo',
'mercador - marcador',
'mesa - meia',
'miado - mimado',
'mimado - miado',
'moedor - roedor',
'moela - mola',
'mola - moela',
'moleira - coleira',
'molho - olho',
'monge - monte',
'monte - monge',
'morno - forno',
'moto - mato',
'mugido - rugido',
'munido - mugido',
'nabo - nato',
'nato - pato',
'navio - pavio',
'nexo - anexo',
'noivo - novo',
'nosso - osso',
'novo - noivo',
'nublado - dublado',
'olho - molho',
'olimpo - limpo',
'orelha - ovelha',
'osso - nosso',
'ouro - touro',
'ovelha - orelha',
'padeiro - pandeiro',
'pampa - tampa',
'pandeiro - padeiro',
'panela - janela',
'papo - pato',
'parreira - carreira',
'parto - perto',
'passado - assado',
'patente - potente',
'pato - prato',
'pausar - causar',
'pavio - navio',
'pegada - pelada',
'peito - perto',
'peixe - feixe',
'pelada - pegada',
'peludo - veludo',
'penhor - senhor',
'pente - rente',
'perito - perto',
'perto - perito',
'pesado - pescado',
'pescado - pesado',
'pinheiro - dinheiro',
'poeira - zoeira',
'poleiro - goleiro',
'polia - polpa',
'polpa - polia',
'pombo - tombo',
'ponta - porta',
'porco - pouco',
'porta - ponta',
'potente - patente',
'pouco - rouco',
'pouso - pouco',
'prato - preto',
'prazo - prato',
'pregar - prezar',
'preto - reto',
'prezar - pregar',
'profeta - proveta',
'proveta - profeta',
'pular - puxar',
'punhado - cunhado',
'puxar - pular',
'rabada - rajada',
'rachar - achar',
'raiar - vaiar',
'rainha - tainha',
'raio - raso',
'rajada - rabada',
'ralado - calado',
'ralo - talo',
'raro - raso',
'raso - raro',
'reator - reitor',
'recente - repente',
'redator - redutor',
'redutor - sedutor',
'regente - repente',
'reitor - reator',
'renda - tenda',
'rente - pente',
'repente - regente',
'reto - teto',
'rica - rixa',
'ripa - rixa',
'risco - cisco',
'rixa - ripa',
'roedor - moedor',
'rolante - volante',
'rolha - bolha',
'rombo - tombo',
'rosto - gosto',
'rota - frota',
'rotina - botina',
'rouco - pouco',
'rugido - mugido',
'sacada - salada',
'sadio - vadio',
'safira - safra',
'safra - safira',
'saibro - caibro',
'salada - sacada',
'sangue - mangue',
'santa - anta',
'sarda - sarna',
'sarna - sarda',
'sebo - selo',
'secar - socar',
'sedutor - redutor',
'seio - selo',
'selar - telar',
'selo - silo',
'senhor - penhor',
'sentar - tentar',
'setor - vetor',
'silo - selo',
'socar - secar',
'sogro - soro',
'soja - soma',
'solado - sovado',
'soma - soja',
'sono - soro',
'soro - sono',
'sovado - solado',
'suar - suor',
'sujar - suar',
'suor - suar',
'tainha - rainha',
'taipa - tampa',
'tala - vala',
'talo - tala',
'tampa - taipa',
'tear - telar',
'tecer - temer',
'tecido - temido',
'teia - veia',
'telar - tear',
'temer - tecer',
'temido - tecido',
'tenda - renda',
'tentar - sentar',
'teto - reto',
'toalha - tralha',
'toco - troco',
'tombo - rombo',
'topo - toco',
'tora - tosa',
'torrar - forrar',
'tosa - tora',
'touro - ouro',
'tralha - toalha',
'treco - troco',
'trevo - treco',
'trincar - brincar',
'troco - treco',
'truta - gruta',
'turbo - turvo',
'turco - turvo',
'turvo - turco',
'vadio - vazio',
'vaga - zaga',
'vagem - viagem',
'vaiar - vazar',
'vaidade - validade',
'vala - valsa',
'validade - vaidade',
'valsa - vala',
'vargem - virgem',
'vasto - visto',
'vazar - vaiar',
'vazio - vadio',
'veia - teia',
'veludo - peludo',
'vencedor - vendedor',
'vendedor - vencedor',
'vetor - setor',
'vexame - exame',
'viagem - virgem',
'videira - viseira',
'vieira - viseira',
'viga - vigia',
'vigia - viga',
'vinda - linda',
'virgem - viagem',
'viseira - vieira',
'visto - vasto',
'voador - doador',
'voar - zoar',
'volante - votante',
'votante - volante',
'vulgo - vulto',
'vulto - vulgo',
'zaga - vaga',
'zoar - voar',
'zoeira - poeira']
The results are not as bad as they look like. They are doubled, because just as like "abaixo" is 1 distance from "baixo", "baixo" is also 1 distance from "abaixo". So we will see everything doubled here.
I learned a lot along the way. I never thought that generating those words was going to get so complicated. We will go back to word in the local board generating more words, as I deleted a lot now.
I hope this mindset can help your library/program NotATether.
Thank you both again.