thoughts

Let me know if you have any questions. Avoid using classes for everything if you can help it. I am thinking that even the cards themselves could just be dumped into one large dict.

* PEP8 naming conventions
* One thing about python is that it often seems like people have done all the work for you. It doesn't hurt to go read the library code itself. Case in point: random and itertools
* Lists were swapped out for sets
* The biggest issue you were having was mistaking class variables for instance variables. Python gives you more than enough rope to hang yourself unlike other languages which are rather direct in what you can and cannot do. 
* Accessors and access modifiers tend to be cruft in Python and JS.