import collections,re anagrams = collections.defaultdict(set) check = re.compile('^[a-z]+$') for word in open("/usr/share/dict/british-english-insane"): if check.match(word): key = "".join(sorted(word)) anagrams[key].add(word.strip()) lines = [] for k, v in anagrams.items(): if len(v) > 1: lines.append(", ".join(sorted(v)).replace(',',':',1)) print("\n".join(sorted(lines)))