# [Retina], 76 bytes

    ^
    A2345678910JQK¶ 
    \G(10|.)
     $&H $&D $&S $&C
    Dr` \S+
    G1`
    ^$
    No missing cards

Input/output is a list of space-separated cards. Output has a leading space.

[Try it online!]

### Explanation

Most of the code deals with building the full list of cards that should be in the deck:

    ^
    A2345678910JQK¶ 
    \G(10|.)
     $&H $&D $&S $&C

First, we prepend a newline to the input, with all possible values of cards, then for each character of this line (or the couple of characters `10`) we build the list of all possible suits of that card.

    Dr` \S+

This is a deduplication stage, it splits the string into chunks consisting of a space plus some non-spaces and keeps only one occurrence of each chunk. The modifier `r` makes this operate from right to left, keeping then the _last_ occurrence of each chunk.

    G1`
We keep only the first line, which now contains the missing cards.

    ^$
    No missing cards
If the result is empty we replace it with "No missing cards"

[Retina]: https://github.com/m-ender/retina
[Try it online!]: https://tio.run/nexus/retina#DcNBCsIwEAXQ/ZziL4oogiRpbZplyEBDCoLMtpQWBelChXbruTyAF6uB97aBvCmrc20bp1W6dr8vqG/3Wn1OB0KxiznnkgfiZUQvR2r1SENBlzee87rOrwdu03Jft81F@AgbUAq0EnSMJHABJqLJAnwm8AzLqBgmIDFq@QM "Retina – TIO Nexus"