Finding the number of all possibilities of a summation Given 10 iid random variables where each of them takes value from a set of 6 constants.
$$ M_i \in \left\{0, 0.06, 0.07,0.08,0.09,0.1\right\} \quad \text{for} \: i = 1,...,10$$
$$ S = \sum_{i=1}^{10} M_i$$
How can I find the number of all possible outcomes of their sum $S$? Please explain the logic.
EDIT: I have tried to solve this problem using brute force in python, here are my results:
[IN]
M = [0, 0.06, .07, .08, .09, .1]
S = []

for a in M:
    for b in M:
        for c in M:
            for d in M:
                for e in M:
                    for f in M:
                        for g in M:
                            for h in M:
                                for i in M:
                                    for j in M:
                                        dummy = a+b+c+d+e+f+g+h+i+j
                                        S.append(dummy)
print(len(S))             
print(len(list(set(S))))

[OUT]
60466176
291

Apparently, the answer to my question is 291. Could anyone help me explain this please?
 A: It depends on constants. To compute maximum number of outcomes we may assume that sum is uniquely defined by multi-set of indices of constants (it is true for example for set $\{\,11^0, 11^1, 11^2, 11^3, 11^4, 11^5\,\}$ of constants). Then the number of different sums is the number of multichoices of $10$ from $6$:
$$\left(\!\!\binom{6}{10}\!\!\right) = \binom{15}{10} = 3003.$$
A: To figure out the problem geometrically, imagine  a 10-D (hyper)cube.
On each side you can mark the given $6$ constants, ordered by value: call them $x_{1}, \, \cdots \, , x_{6}$.  
Then their sum $x_{1}, + \cdots \, + x_{6}=s$, with $s$ varying from $6x_{1}$ to $6x_{6}$, will correspond to a diagonal plane with normal $(1,1,\cdots,1)$. 
Now, if the constants are equally spaced, that corresponds to take them as from the set $\{0,1,\cdots,5\}$. For each integral value of $s$, with $0 \leq s \leq 30$, there is at least one sextuple that satisfies $\sum x_{k}=s$: so there are $31$ possible outcomes for the sum.
If instead the $x_{k}$ are not equally spaced, then you may have some holes. For instance, if $x \in \{0,1,8\}$ then you cannot get, e.g., $s=7$.
A: I think your bruteforce program deceives you. Operations with non-integers may be not accurate. You get sums like 0.2500000000001 and 0.24999999999 which python thinks are different, but actually they should be not.
Multiply all the numbers in set by 100 and rerun the program. You should get the correct answer: 95.
Print out the sorted list of possible values of S. You will get the list of almost all the integers in a range [0, 100]. Almost. Some of them would be missing: 1, 2, 3, 4, 5, 11.
You can prove that these are not possible values of S. You can also prove the any other integer in a range [0, 100] is a possible answer. You can also prove that there could be no other answers. So the number of possible values of S in 95.
Unfortunately I do not know any more "general" way to solve this problem.
