Python dojo-Anagrams
Instructions: Write a program to generate all potential anagrams of an input string.
For example, the potential anagrams of “biro” are
biro bior brio broi boir bori ibro ibor irbo irob iobr iorb rbio rboi ribo riob roib robi obir obri oibr oirb orbi orib
V1.0 Code:
#ana.py
import itertools
def anagram_letters(letters):
return set([ "".join(a) for a in itertools.permutations([e for e in letters],len(letters))])
#think about how to write itertools.permutations in V2.0
V1.0 Test:
#test_ana.py
from ana import *
from unittest import TestCase
class TestAnagram(TestCase):
def test_1_word(self):
self.assertEqual(anagram_letters("a"),{"a"}) #he differnce between(a) and (a,)
def test_2_word(self):
self.assertEqual(anagram_letters("ab"),set(["ab","ba"]))
def test_2_same_word(self):
self.assertEqual(anagram_letters("bb"),{"bb"})
def test_3_same_word(self):
self.assertEqual(anagram_letters("bbb"),{"bbb"})
def test_len_4_word(self):
self.assertEqual(len(anagram_letters("aabb")),6)
def test_len_4_different_word(self):
self.assertEqual(len(anagram_letters("abcde")),120)