Что-то я не понял, зачем у вас так много
string.ascii_uppercase + string.digits
Данный код генерирует строку из букв и цифр длиной
n символов (подробнее
тут [ENG], ну или в комментарии напишите, что именно нужно сгенерировать)
import random
import string
a=''.join(random.choice(string.ascii_letters + string.digits) for x in range(n))
print(a)
Ну и вторая часть вопроса:
Генерация букв/цифр- Генерация букв любого регистра - string.ascii_letters
- Генерация букв нижнего регистра - string.ascii_lowercase
- Генерация букв верхнего регистра - string.ascii_uppercase
- Генерация цифр - string.digits
Готовый пример генерацииA-Z
a=''.join(random.choice(string.ascii_uppercase) for x in range(n))
a-z
a=''.join(random.choice(string.ascii_lowercase) for x in range(n))
0-9
a=''.join(random.choice(string.digits) for x in range(n))
Не забудьте указать n, а также импортировать модули random и string