Как генерировать не только большие буквы но и маленькие

Я написал простой код, который генерирует рандомные буквы, но он генерирует их большими:

from random import choice
from string import ascii_uppercase
  
aa = random.randint(8,30)
a = (''.join(choice(ascii_uppercase) for i in range(aa)))

print (a)

Что можно сделать, чтобы гененрировались большие буквы, маленькие буквы и цифры? Все они должны быть записанны в переменную "a" и должны идти в случайном порядке, чтобі рандомайзер мог сгенерировать число например: jEjk34FOp442Gi


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

Автор решения: Jack_oS
from random import choice
from string import ascii_uppercase, ascii_lowercase

random_uppercase = choice(ascii_uppercase)
random_lowercase = choice(ascii_lowercase)
random_digit = choice([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

Если нужно сгенерировать что-то похожее на пароль из маленьких, больших букв и цифр, сделайте список допустимых символов и выбирайте из него:

from random import choice
        
symbols = 'abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
password = (''.join(choice(symbols) for _ in range(12)))
        
>>> print(password)
VpJO2rnNZGjj
→ Ссылка
Автор решения: Aleks Kisel

Вот самый простой пример

import random
chars = '1234567890abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

number = input('количество паролей?'+ "\n")
length = input('длина пароля?'+ "\n")
number = int(number)
length = int(length)


for n in range(number):
    password =''
    for i in range(length):
        password += random.choice(chars)
    print(password)
→ Ссылка