Combinatorics - calculating probability of choosing n people from m groups of k people I am trying to calculate and understand the following question:
I have 10 groups of 10 people each and am choosing 10 people at random.  What is the probability that all 10 people I have chosen are from one group? From 2 groups? Etc.

This is really a hypergeometric problem. If you have 10 groups with 10 people in each, and you draw randomly without replacement 10 people, let $X_i$ be the number of people drawn from group $i$. Then the probability distribution is given by
$$   \DeclareMathOperator{\P}{\mathbb{P}}   
\P\left\{ X_i=x_i, i=1,2,\dotsc,10 \right\} =
\frac{\prod_i^{10} \binom{10}{x_i}}{\binom{100}{10}} 
$$
but your interest is in the random variable "number of groups"
$$ G=\sum_i \{X_i > 0 \} $$ where the curly braces is the< indicator function. For $g$ small or close to 10, this is a small sum of hypergeometric probabilities, while for <intermediate values it becomes complicated ...
The comment by @Henry gives a numerical exmple with smaller numbers. Let us do it with your group sizes, with the help< of R. For the intermediate values of $g$ it is most practical to resort to simulation.
library(extraDistr)
### A helper function to save typing:
myhyper <- function(x) {
    p <- length(x)
    n <- sum(x)
    extraDistr::dmvhyper(x, rep(n, p), n)
}

### Probability of exactly one group, G=1:
 10*myhyper(c(10, rep(0, 9)))
[1] 5.776904e-13
# We multiply by 10 because there are 10 ways of 
# choosing that group 
### Probability of G=2  

prob2 <- 0.0
for (i in seq(from=1,  to=9,  by=1)) prob2 <- prob2  +
               myhyper(c(i, 10-i, rep(0, 8)))

( prob2 <- choose(10, 2) * prob2 )
 4.802878e-07

### Then we resort to simulation:

set.seed(7*11*13) # My public seed

prob2_by_sim <- rmvhyper(1E7, rep(10, 10), 10)

### There is one sample in each row. Let us calculate ### the number of zeros, by row:

zeros <- apply(prob2_by_sim, 1, 
        FUN = function(row) sum(row==0) )

tzeros <- table(zeros)  

 tzeros/1E7
zeros
        0         1         2         3         4         5         6         7 
0.0005821 0.0233285 0.1723967 0.3886847 0.3139600 0.0920672 0.0087765 0.0002039 
        8 
0.0000004 

Note the excellent correspondence of the simulation for $G=2$ (that is, 8 zeros) with the theoretical calculation above.
Note the similarity of this problem with the coupon collector problem, with number of coupons corresponding to number of groups. But this is a hypergeometric version of the coupon collector problem. There is a paper dedicated to this: The Hypergeometric Coupon Collection Problem and its Dual by Sheldon M. Ross.
