파이썬 아스키코드 암호화 - paisseon aseukikodeu amhohwa

#3.5.2
import itertools as it

smallalpha = 'abcdefghijklmnopqrstuvwxyz'
keys = list(map(lambda x: ''.join(x),it.product(smallalpha,smallalpha,smallalpha)))
case = [79,59,12,2,79,35,8,28,20,2,3,68,8,9,68,45,0,12,9,67,68,4,7,5,23,27,1,21,79,85,78,79,85,71,38,10,71,27,12,2,79,6,
        2,8,13,9,1,13,9,8,68,19,7,1,71,56,11,21,11,68,6,3,22,2,14,0,30,79,1,31,6,23,19,10,0,73,79,44,2,79,19,6,28,68,16,
        6,16,15,79,35,8,11,72,71,14,10,3,79,12,2,79,19,6,28,68,32,0,0,73,79,86,71,39,1,71,24,5,20,79,13,9,79,16,15,10,
        68,5,10,3,14,1,10,14,1,3,71,24,13,19,7,68,32,0,0,73,79,87,71,39,1,71,12,22,2,14,16,2,11,68,2,25,1,21,22,16,15,6,
        10,0,79,16,15,10,22,2,79,13,20,65,68,41,0,16,15,6,10,0,79,1,31,6,23,19,28,68,19,7,5,19,79,12,2,79,0,14,11,10,64,
        27,68,10,14,15,2,65,68,83,79,40,14,9,1,71,6,16,20,10,8,1,79,19,6,28,68,14,1,68,15,6,9,75,79,5,9,11,68,19,7,13,
        20,79,8,14,9,1,71,8,13,17,10,23,71,3,13,0,7,16,71,27,11,71,10,18,2,29,29,8,1,1,73,79,81,71,59,12,2,79,8,14,8,12,
        19,79,23,15,6,10,2,28,68,19,7,22,8,26,3,15,79,16,15,10,68,3,14,22,12,1,1,20,28,72,71,14,10,3,79,16,15,10,68,3,
        14,22,12,1,1,20,28,68,4,14,10,71,1,1,17,10,22,71,10,28,19,6,10,0,26,13,20,7,68,14,27,74,71,89,68,32,0,0,71,28,1,
        9,27,68,45,0,12,9,79,16,15,10,68,37,14,20,19,6,23,19,79,83,71,27,11,71,27,1,11,3,68,2,25,1,21,22,11,9,10,68,6,
        13,11,18,27,68,19,7,1,71,3,13,0,7,16,71,28,11,71,27,12,6,27,68,2,25,1,21,22,11,9,10,68,10,6,3,15,27,68,5,10,8,
        14,10,18,2,79,6,2,12,5,18,28,1,71,0,2,71,7,13,20,79,16,2,28,16,14,2,11,9,22,74,71,87,68,45,0,12,9,79,12,14,2,23,
        2,3,2,71,24,5,20,79,10,8,27,68,19,7,1,71,3,13,0,7,16,92,79,12,2,79,19,6,28,68,8,1,8,30,79,5,71,24,13,19,1,1,20,
        28,68,19,0,68,19,7,1,71,3,13,0,7,16,73,79,93,71,59,12,2,79,11,9,10,68,16,7,11,71,6,23,71,27,12,2,79,16,21,26,1,
        71,3,13,0,7,16,75,79,19,15,0,68,0,6,18,2,28,68,11,6,3,15,27,68,19,0,68,2,25,1,21,22,11,9,10,72,71,24,5,20,79,3,
        8,6,10,0,79,16,8,79,7,8,2,1,71,6,10,19,0,68,19,7,1,71,24,11,21,3,0,73,79,85,87,79,38,18,27,68,6,3,16,15,0,17,0,
        7,68,19,7,1,71,24,11,21,3,0,71,24,5,20,79,9,6,11,1,71,27,12,21,0,17,0,7,68,15,6,9,75,79,16,15,10,68,16,0,22,11,
        11,68,3,6,0,9,72,16,71,29,1,4,0,3,9,6,30,2,79,12,14,2,68,16,7,1,9,79,12,2,79,7,6,2,1,73,79,85,86,79,33,17,10,10,
        71,6,10,71,7,13,20,79,11,16,1,68,11,14,10,3,79,5,9,11,68,6,2,11,9,8,68,15,6,23,71,0,19,9,79,20,2,0,20,11,10,72,
        71,7,1,71,24,5,20,79,10,8,27,68,6,12,7,2,31,16,2,11,74,71,94,86,71,45,17,19,79,16,8,79,5,11,3,68,16,7,11,71,13,
        1,11,6,1,17,10,0,71,7,13,10,79,5,9,11,68,6,12,7,2,31,16,2,11,68,15,6,9,75,79,12,2,79,3,6,25,1,71,27,12,2,79,22,
        14,8,12,19,79,16,8,79,6,2,12,11,10,10,68,4,7,13,11,11,22,2,1,68,8,9,68,32,0,0,73,79,85,84,79,48,15,10,29,71,14,
        22,2,79,22,2,13,11,21,1,69,71,59,12,14,28,68,14,28,68,9,0,16,71,14,68,23,7,29,20,6,7,6,3,68,5,6,22,19,7,68,21,
        10,23,18,3,16,14,1,3,71,9,22,8,2,68,15,26,9,6,1,68,23,14,23,20,6,11,9,79,11,21,79,20,11,14,10,75,79,16,15,6,23,
        71,29,1,5,6,22,19,7,68,4,0,9,2,28,68,1,29,11,10,79,35,8,11,74,86,91,68,52,0,68,19,7,1,71,56,11,21,11,68,5,10,7,
        6,2,1,71,7,17,10,14,10,71,14,10,3,79,8,14,25,1,3,79,12,2,29,1,71,0,10,71,10,5,21,27,12,71,14,9,8,1,3,71,26,23,
        73,79,44,2,79,19,6,28,68,1,26,8,11,79,11,1,79,17,9,9,5,14,3,13,9,8,68,11,0,18,2,79,5,9,11,68,1,14,13,19,7,2,18,
        3,10,2,28,23,73,79,37,9,11,68,16,10,68,15,14,18,2,79,23,2,10,10,71,7,13,20,79,3,11,0,22,30,67,68,19,7,1,71,8,8,
        8,29,29,71,0,2,71,27,12,2,79,11,9,3,29,71,60,11,9,79,11,1,79,16,15,10,68,33,14,16,15,10,22,73]

def asciinum(s):
    nums = []
    for i in s:
        nums.append(ord(i))
    return nums

def solve(s,k):
    ans = ''
    for i in range(len(s)):
        ans += chr(s[i]^k[i%3])
    return ans

strs = []
for i in keys:
    s = solve(case,asciinum(i))
    strs.append((i,s.count(' '),sum([ord(x) for x in s])))

strs.sort(key=lambda x: x[1],reverse=True)
print(strs)
출력:
[('god', 232, 107359), ('iod', 173, 108557), ('kod', 167, 108331), ('vod', 164, 110924), ('nod', 163, 108436), ('ood', 163, 108375), ('sod', 163, 110819), ('tod', 163, 111150), ('wod', 163, 110863), ('aod', 162, 107541), ('bod', 162, 107376), ('cod', 162, 107315), ('dod', 162, 107646), ('eod', 162, 107585), ('fod', 162, 107420), ('hod', 162, 108618), ('jod', 162, 108392), ('lod', 162, 108662), ('mod', 162, 108601), ('pod', 162, 111106), ('qod', 162, 111045), ('rod', 162, 110880), ('uod', 162, 111089), ('xod', 162, 112122), ('yod', 162, 112061), ('zod', 162, 111896), ('gou', 160, 110513), ('goh', 159, 108535), ('goj', 159, 108815), ('gov', 157, 110743), ('goe', 156, 107409), ('goq', 156, 110553), ('gos', 156, 110833), ('gow', 156, 110793), ('goa', 155, 107449), ('gob', 155, 107679), ('goc', 155, 107729), ('gof', 155, 107639), ('gog', 155, 107689), ('goi', 155, 108585), ('gok', 155, 108865), ('gol', 155, 108495), ('gom', 155, 108545), ('gon', 155, 108775), ('goo', 155, 108825), ('gop', 155, 110503), ('gor', 155, 110783), ('got', 155, 110463), ('gox', 155, 111639), ('goy', 155, 111689), ('goz', 155, 111919), ('gad', 149, 108731), ('gcd', 149, 108383), ('ghd', 148, 107891), ('gwd', 148, 111903), ('gyd', 148, 111483), ('gbd', 147, 108439), ('gdd', 147, 108659), ('ged', 147, 108603), ('gfd', 147, 108311), ('ggd', 147, 108255), ('gid', 147, 107835), ('gjd', 147, 107543), ('gkd', 147, 107487), ('gld', 147, 107763), ('gmd', 147, 107707), ('gnd', 147, 107415), ('gpd', 147, 112435), ('gqd', 147, 112379), ('grd', 147, 112087), ('gsd', 147, 112031), ('gtd', 147, 112307), ('gud', 147, 112251), ('gvd', 147, 111959), ('gxd', 147, 111539), ('gzd', 147, 111191), ('iou', 101, 111711), ('ioh', 100, 109733), ('ioj', 100, 110013), ('iov', 98, 111941),
...,
('zxo', 0, 117542), ('zxp', 0, 119220), ('zxr', 0, 119500), ('zxt', 0, 119180), ('zxx', 0, 120356), ('zxy', 0, 120406), ('zxz', 0, 120636), ('zza', 0, 115818), ('zzb', 0, 116048), ('zzc', 0, 116098), ('zzf', 0, 116008), ('zzg', 0, 116058), ('zzi', 0, 116954), ('zzk', 0, 117234), ('zzl', 0, 116864), ('zzm', 0, 116914), ('zzn', 0, 117144), ('zzo', 0, 117194), ('zzp', 0, 118872), ('zzr', 0, 119152), ('zzt', 0, 118832), ('zzx', 0, 120008), ('zzy', 0, 120058), ('zzz', 0, 120288)]