tixonochek, как минимум пустая трата памяти, не говорю что её очень мало, но смысла в создании отдельной функции для такой мелочной задачи нет. Если каким-то чудом будет выпадать больше 1000 одинаковых случайных чисел, то капут твоей программе. RecursionError.
Вечный цикл. Зачем приравнивать value к value2 и создавать цикл, в котором ставишь условие value == value2?
Не value = value2 = random.randint(1, 8), а
value = random.randint(1, 8)
value2 = random.randint(1, 8)
Это плохой алгоритм. С таким алгоритмом очень долго бы решалась программа. На том же Python и С++ степень выше 9 решает больше минуты. Лучше возводить в 0.5 степень - мгновенно.