primes = [2, 3, 5, 7, 11 ,13 ,17 ,19 ,23 ,29 ,31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101]
sample = ['hat', 'top', 'pot', 'peer', 'pper', 'pire', 'ripe']
def printSameChar(word_lst):
words_hash_dic = {}
for word in word_lst:
w_h = 1
for c in word:
w_h *= primes[ ord(c)- 97 ]
if w_h in words_hash_dic:
words_hash_dic[w_h].append(word)
else:
words_hash_dic[w_h] = [word]
for x in words_hash_dic:
print words_hash_dic[x]
printSameChar(sample)
result:
['peer']
['hat']
['pire', 'ripe']
['top', 'pot']
['pper']