Выводится только последняя буква переменной в с помощью random.choice

Проблема очень глупая, так как очень давно не программировал. Надеюсь, поможете, хоть проблема реально очень глупая. Итак, есть у меня такой фрагмент кода:

chars = 'abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
        if call.message:
            if call.data == 'yes':
                for generatekey in range (15):
                    payid = random.choice(chars)
                    print (payid)
                bot.send_message(call.message.chat.id, 'Вот твоя ссылка на оплату: [ссылка позже].\nОбязательно в комментариях к оплате укажи этот код:' + payid)

Сам бот выдает только последнюю букву переменной payid, а компилятор выдает все буквы, но каждая буква через новую строку. Как можно исправить?


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

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

Вы в этом коде никуда не сохраняете те значения, которые генерируете, поэтому сохраняется только последнее значение:

for generatekey in range (15):
    payid = random.choice(chars)
    print (payid)

Вместо этого цикла используйте такой код, он объединяет все ваши результаты случайного выбора в одну строку:

payid = ''.join(random.choice(chars) for _ in range (15))
print (payid)
→ Ссылка