Here is a first attempt at generating all strings of length length. The idea is to use continue to ignore part of the nested loop structure.

In [1]:
def print_all_passwords(length):
    alphabet = 'abcdefghijklmnopqrstuvwxyz'
    for letter1 in alphabet:                
        if length == 1:
            print(letter1)
            continue      #go back to 
                          #for letter1 in alphabet and assign 
                          #the next letter to letter1
        for letter2 in alphabet:            
            if length == 2:
                print(letter1+letter2)
                continue      #go back to 
                              #for letter2in alphabet and assign 
                              #the next letter to letter2
            for letter3 in alphabet:        
                if length == 3:
                    print(letter1+letter2+letter3)
                    continue

                for letter4 in alphabet:    
                    if length == 4:
                        print(letter1+letter2+letter3+letter4)