You need to watch out when you say 'stabilizer' or 'stabilizers' because there is a little bit of ambiguity in that terminology$^{1}$.
The stabilizer $\mathcal{S}$ of a state $|\psi \rangle$ is the group of $n$-qubit Paulis of which $|\psi \rangle$ is a $+1$ eigenstate. That is, $|\psi \rangle$ is the shared $+1$ eigenspace of all these operators. We can generalize this by having a stabilizer code where the shared eigenspace is of dimension $2^{n-l}$ instead of $1$, because we now take only $l$ Paulis for an $n$-qubit system. We then get $k = n-l$ logical qubits.
The number of elements in any stabilizer is $2^{l}$, because if $P_{1}, P_{2} \in \mathcal{S}$, then evidently $P_{12} = P_{1}P_{2} \in \mathcal{S}$ as well. That is, the elements of $\mathcal{S}$ form a group (hence why we refer to it as the stabilizer group). Our $l$ Paulis are generators for the group; but there are $2^{l}$ elements in the group, because any multiplication of our generators will give an element of the stabilizer as well.
Shouldn't I get 3 stabilizers instead of 4? because as I understand it, the number of stabilizers is given by n−k where n is the number of physical bits and k is the number of logical or information bits, and in our case we have n=3, k=0
You should get $3$ generators for the state, since the number of generators is $l = n-k = (3 - 0)$. The four Paulis that you have listed are not mutual exclusive generators, because $M_4 = M_{2}M_{3}$ (or any other permutation). Hence, to generate this specific stabilizer we only need $M_{1}$ and any two of the set $M_{2},M_{3},M_{4}$.
To illustrate, consider the operator $M_{5} = M_{1}M_{4} = (XXX)(IZZ) = (XYY)$ (up to a phase). Evidently, $M_{5}|\psi\rangle = XYY|\psi\rangle = (+1)|\psi\rangle$, so $M_{5}$ is also an element of the stabilizer of $|\psi\rangle$. However, we can 'generate' $M_{5}$ with $M_{1}\& M_{4}$ (and therefore with $M_{1}, M_{2} \& M_{3}$ as well), so we don't need to keep track of $M_{5}$.
There is no more rigorous method to find the stabilizers, without having to try all the combinations? perhaps through the Hamming matrix as in the classical codes?
This is actually pretty hard to do in general. However, it is also not needed very often: normally we define a stabilizer and then 'just' find the corresponding state or codespace.
Also, please note that only a subset of all valid quantum states can have a stabilizer comprised of Pauli matrices.
- In fact,Daniel Gottesman, who developed the stabilizer formalism, said (and I paraphrase): "I can't stop you from calling them stabilizers, but I do not condone it." :)