>don't forget single and double quotes
Assuming the password accepts unicode, you may have a much bigger fight ahead of you. Consider other symbols like the pound sign (£) or the euro found on keyboards from other countries.
If it's unicode, you can safely assume UTF-8, given it's a pretty widespread standard.
Also, I recommend avoiding random character generators, but having a pre-computed array/table (for 3 characters).
If you're looking at additional bruteforcing power, a couple of recommendations:
1) Each of you should pick one picture each and specify what image you are trying to decode, and how. That way you're not duplicating each other's work.
2) If failed, specify what you tried and the 'results', if any.
For bringing hardware resources to bear:
1) Consider modded PS3s (some of you might have one or two lurking around), they're ideal for bruteforcing
2) Trial periods on cloud hosting repurposed (or alternately rent out some rackspace)
3) Dust off some old laptops, machines, and set them to work continuously whilst you do other things
4) Get some programmerfags to rewrite the testing code in bare metal (like C++) which would see mild performance improvements
Alternatively, if exhausting the three character space is too much, assign each of yourselves a single first character, and brute force all characters under that character.
So if one of you was to do 'A' (A), the next person would do 'B' (B).
Brute forcing isn't just about power but also efficient allocation of resources.
PS, Bitcoin's algorithm is SHA256. So if you're looking to break SHA256, look no further than your own noses. ; )