import random
import string
import itertools

upper = list(string.ascii_uppercase)    # алфавит в верхнем регистре
lower = list(string.ascii_lowercase)    # в нижнем
digits = list(string.digits)            # цифры
d = "_"                                 # знак подчеркивания
password = []                           # готовый пароль
this = []                               # все элементы всех списков в одном
all1 = [upper,lower,digits]             # списки в списке

for x in all1:                          # вытягиваем все элементы в один список
    for item in x:
        this.append(item)

this.append(d)                          # добавляем знак подчеркивания в список всех элементов
random.shuffle(this)                    # перемешиваем список всех элементов
for x in range(8):                      # создаем пароль
    password.append(this[int(random.randrange(0,len(this)))])
    print(password)
    for i in upper:
        if not (upper[upper.index(i)]) in password:
            #print(upper.index(i))       # индекс тех элементов, которых нет в пароле
print(password)

#this=random.sample(upper+lower+digits,random.randint(0,len(upper+lower+digits)))