My goal is a simple password generator. I couldn't find any references to random.choice() failing to randomly select list elements, so it must be something wrong with the structure of my code.

Here is an example of the desired output, assuming I choose '2' as my password complexity:

['X', '$', 3, 8, 'd', '+', '\_', 4, 'r', '%', 'E, 2]

```
import string 
import random
def password():
    password = []
    strength = input('How strong, from 1 to 3?')
    symbol_library= ["&", '+', "#","*", "£", "$", "+", "-", "."]
    gen_integer= password.append(random.randint(0,9))
    gen_letter= password.append(random.choice(string.ascii_letters))
    gen_letter2= password.append(random.choice(string.ascii_letters.lower()))
    gen_symbols = password.append(random.choice(symbol_library))
    func_list= [gen_integer, gen_letter, gen_symbols]
    func_list2 =  [gen_integer, gen_letter, gen_letter2, gen_symbols]
    if strength == '1':
        while len(password)<8:
            password.append(random.choice(func_list))

        print(password)

    elif strength == '2':
        while len(password)<12:
             password.append(random.choice(func_list2))

        print(password)

```

example of an output which does vary randomly from one run to the next, but does not generate randomized list elements up until the list is the given input target length (8 and 12 respectively)

```
How strong, from 1 to 3? 2
[6, 'X', 'v', '&', None, None, None, None, None, None, None, None]

```