Для поиска анаграмм состоящих из одинакового количества букв или меньшего числа букв я делал так:
Для того чтобы слово из словаря можно было считать анаграммой нашего слова должно совпасть три условия:
1. Количество букв в словарном слове не должно превышать количество букв в нашем слове (простая проверка на длину слова).
2. Также слово в словаре не должно содержать такие буквы, которые отсутствует в нашем слове. Например - слово "бур" не является анаграммой слова "робот".
3. Количество одинаковых букв в словарном слове не должно превышать их количество в искомом слове. Данный пункт проверял через составление и сравнение двух ассоциативных массивов вида: "буква" -> "количество ее повторений". Например: "тара" - [т] -> 1, [а] -> 2, [р] -> 1.
Когда эти три условия совпадут слово можно считать анаграммой.
Вот рабочий код:
https://tinyurl.com/rskes9g