Removing random repeated guesses from brute force program
I think that your problem is the use of randomisation - it's not really a brute-force attack if you are guessing.

If it were a 4-digit combination lock you would start at 0000 and then try 0001 and 0002 and so on. That's the brute-force approach. I suggest that you employ exactly the same approach with your password cracker. It should be the same algorithm, but rather than 10 posibilities in each slot you have 26.