Firstly I'd like to clear up any confusion regarding the term "odds" and how I'll be using it in my answer.
If I was to roll a standard fair dice I would have 1 chance in 6 (number
of successful outcomes verses the number of all possible outcomes) of rolling a specified number.
If a fair bookmaker (there's an oxymoron) was to take bets on this game he would give odds of 5 to 1, you would (on average) lose 5 times at 1 dollar per time and win 1 time at $5 (the odds the bookmaker gave you ) for every 6 games, leaving you square.
Similarly in a standard deck of cards you have 1 chance in 52 of picking the ace of hearts, but the bookmakers odds would be 51 to 1, and so on for various other games of chance. This seeming discrepancy of "1" is only due to the fact that the bookmaker doesn't include your ORIGINAL bet in the odds otherwise it would be the same as the number of chances, either way as the chances increase the discrepancy becomes more insignificant.
Just to be clear, I will be using the number of "CHANCES" as opposes to "ODDS", if you wish to convert, just deduct 1, but in this case with the numbers involved this becomes overwhelmingly insignificant.
Q1
Number of ways 10 cards can be picked from a deck (order unnecessary) = number of ways all four 2's, all four 3's and at least 2 of the 4 4's can be arranged just comes down to how many ways to pick just two of the 4,s (again order excluded)=$\binom {4}{2}$=6
The chances of this happening in the first 10 cards is $\frac{15820024220}{6}\approx2,636,670,703 $
Q2
Number of arrangements (order excluded) of the last 5 cards in a deck = $\binom {52}{5}$=2598960
Number of ways of picking 3 of the 8's = same as the number of ways of excluding 1 of the 8's = 4
Number of ways of picking 2 of the 7's =$\binom {4}{2}$=6
Therefore there are 4x6 = 24 ways of picking the three 8's and two 7's
So the chances of this occurring = $\frac{2598960}{24} =108290$
You don't specify an initial state. From your result for $A$, I infer that you're interested in the expected score in equilibrium (which is $\frac14$ per draw in $A$), not starting from a full deck (which would be slightly different).
In the general case, in a shuffled deck the $i+j$ non-reshuffle cards are equidistributed over the $k+1$ intervals formed by the $k$ reshuffle cards. Thus, on average we draw $\frac{i+j}{k+1}$ non-reshuffle cards before drawing a reshuffle card, and the expected score from these is $\frac i{k+1}$. Thus the expected score per draw is
$$
\frac{\frac i{k+1}}{\frac{i+j}{k+1}+1}=\frac i{i+j+k+1}
$$
(where $+1$ counts the reshuffle card). In your two specific cases, this yields
$$
\frac1{1+0+2+1}=\frac14
$$
and
$$
\frac1{1+10+2+1}=\frac1{14}\;,
$$
respectively.
Note that interestingly it doesn't matter how many of the non-scoring cards are zeros or reshuffles. As long as there's at least one reshuffle card, the expected score per draw is simply $\frac i{n+1}$, where $n$ is the total number of cards, compared to $\frac in$ if you loop through a deck without reshuffle cards.
Edit in response to a comment:
The ratio $\frac{\frac i{k+1}}{\frac{i+j}{k+1}+1}$ comes about as follows: Each time we draw from a full, shuffled deck up to and including a reshuffle card, the expected score is $\frac i{k+1}$ and the expected number of draws is $\frac{i+j}{k+1}+1$. For one such run, the expectation of the score per draw is hard to determine; it isn't simply the ratio of the two expectations. For instance, in your first example, we score $0/1$ with probability $\frac23$ and $1/2$ with probability $\frac13$, so the expectation of the score per draw is $\frac23\cdot0+\frac13\cdot\frac12=\frac16\ne\frac14$. However, if we perform a very large number $m$ of such runs, the number of draws will be close to $m$ times the expected number of draws per run, and the score will be close to $m$ times the expected score per run, so for all the runs together, the expectation of the score per draw is simply the ratio between the expected score per run and the expected number of draws per run.
Best Answer
Script
Here's a solution using my Icepool Python package:
(API subject to change. This script is based on Icepool v0.25.6.)
Try this script in your browser.
Result
Die with denominator 7422507311299080
Explanation
all_basic
returns 1 if that card is a basic card and all copies of that card were drawn, and 0 otherwise.multiset_function
allows us to define a function using some simple multiset operations. In this case, we jointly determine three things:&
operator represents multiset intersection, and.any()
determines whether that intersection is non-empty..any()
such card.final_evaluation
describes restarting if the first condition is not met, and otherwise determines whether the other two conditions are met.Algorithm
The algorithm uses dynamic programming and the decomposition of the hypergeometric distribution into binomials to find the distribution efficiently. If you are curious to learn more, you can read my paper here.