Number of 5-card Charlie hands in blackjack A five-card Charlie in blackjack is when you have a total of 5 cards and you do not exceed a point total of 21. How many such hands are there? Of course, the natural next question concerns six-card Charlies, etc. 
It seems like one way of determining the answer might be to determine the total number of 5-card hands and then subtract out the number of hands that exceed 21, but I am at a loss as to how to do this effectively. Is there some use of the inclusion-exclusion principle at work here? The condition that the cards do not exceed 21 is the difficulty I am having a hard time addressing. Any ideas?

Here's a recursive Java code
public class MSE2183749 {
    // counts hands (with permutations) attaining at most t1 points, from n cards
    public static long countp(final int t1, final int n, final int[] cards) {
        if (n > t1)         return 0;
        if (n == 0)         return 1;
        long ac = 0;
        for (int j = 1; j < cards.length && j + n - 1 <= t1; j++) {
            if (cards[j] == 0)  continue;
            int[] cards2 = Arrays.copyOf(cards, cards.length);
            cards2[j]--;
            ac += cards[j] * countp(t1 - j, n - 1, cards2);
        }
        return ac;
    }

    public static void main(String[] args) {
        long res = countp(21, 5, new int[] { 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 16 });
        System.out.println(res/(5*4*3*2));
    }
}

The result, as other answers have pointed out, is 139972
