Почему компилятор выдаёт что такой позиции(i) в элементах не существует?

Пишу игру Бейглз. Проблема появляется в классе getClues(), компилятор выдаёт что такой позиции(i) в элементах не существует. Прошу помочь.

import random

num_digits=3
max_guesses=10

def main():
    print('''Бейглз это дедуктивная логическая игра.
    
Я думаю о {}-значном числе без повторяющихся чисел.
Попробуй угадать его. Я дам несколько подсказок:
Когда я говорю:                  Это значит:
    Пико               Правильная цифра на неправильном месте
    Ферми              Правильная цифра на правильном месте
    Бейглз                    Нет правильных цифр
    
Например, если загаданное число было 248 и ты говоришь 843, то подсказки будут "Ферми Пико"'''.format(num_digits))

    while True:
        secretNum=getSecretNum()
        print('Я задумал число.')
        print('У тебя есть {} попыток чтобы отгадать его'.format(max_guesses))

        numGuesses=1
        while numGuesses<=max_guesses:
            guess=''
            while len(guess) != num_digits or not guess.isdecimal():
                print('Попытка №{}: '.format(numGuesses))
                guess=input('> ')

            clues=getClues(guess, secretNum)
            print(clues)
            numGuesses+=1

            if guess==secretNum:
                break
            if numGuesses>max_guesses:
                print('У тебя закончились попытки')
                print('Ответом было {}.'.format(secretNum))

        print('Вы хотите сыграть ещё раз?(да или нет)')
        if not input('> ').lower().startswith('y'):
            break
    print('Спасибо за игру!')

def getSecretNum():
    numbers=[0,1,2,3,4,5,6,7,8,9]
    random.shuffle(numbers)
    secretNum=''
    for i in range(num_digits):
        secretNum+=str(numbers[i])
        return secretNum

def getClues(guess, secretNum):
    if guess==secretNum:
        return 'Ты угадал'

    clues=[]

    for i in range(len(guess)):
        if guess[i]==secretNum[i]:
            clues.append('Ферми')
        elif guess[i] in secretNum:
            clues.append('Пико')
    if len(clues)==0:
        return 'Бейглз'
    else:
        clues.sort()
        return ' '.join(clues)


if __name__=='__main__':
    main()

Ответы (1 шт):

Автор решения: IFR1T

В функции def getSecretNum(): на строке return "лишний" знак табуляции. Цикл завершается на первом же прохождении, и в итоге секретное число - из одной цифры. Убери табуляцию на 1 шаг назад, и все будет работать правильно.

→ Ссылка