Very crude password generation

DISCLAIMER: Do not expect any sort of good security from these passwords. I do not guarantee any form of security based on passwords generated through this script. Use at your own risk.

Generates 25 passwords which alternate between the left and right hands for each character, have alphanumerical plus symbols and never require holding down shift. Coded while playing Super Smash Brawl at 3am so I bet there's a million horrible things about it.

import random

alpha_left = ['r', 'q', 'w', 'e', 'r', 't', 'a', 's', 'd', 'f', 'g', 'z', 'x', 'c', 'v', 'b']
num_left = ['1', '2', '3', '4', '5', '6']
symbols_left = ['`']
alpha_right = ['j', 'k', 'l', 'n', 'm', 'h', 'y', 'u', 'o', 'i', 'p']
num_right = ['7', '8', '9', '0']
symbols_right = [';', "'", '[', ']', '.', ',', '/', '-', '=', '\\']

left = [alpha_left, num_left, symbols_left]
right = [alpha_right, num_right, symbols_right]

def gen_pw ():
passwd = ""

for i in range (8):
if i % 2:
cata = left[random.randrange (3)]
else:
cata = right[random.randrange (3)]

passwd += cata[random.randrange (len (cata))]

return passwd

def check_pw (p):
has = [False, False, False]

for c in alpha_left:
if c in p:
has[0] = True
for c in num_left:
if c in p:
has[1] = True
for c in symbols_left:
if c in p:
has[2] = True
for c in alpha_right:
if c in p:
has[0] = True
for c in num_right:
if c in p:
has[2] = True
for c in symbols_right:
if c in p:
has[2] = True

if False in has:
return None
else:
return p

pwlist = []

while len (pwlist) < 25:
tmp_pw = check_pw (gen_pw ())

if tmp_pw:
pwlist.append (tmp_pw)

print pwlist