This doesn't solve your direct problem (but mostly because I don't know what you want), but,
considering that there are only 52 possible cards, why not represent hands as bitstrings? In that case, it's easy to subtract a known hand from the set of possible cards (just add (&) with the negation (~)).