Q-learning agent stuck at taking same actions
I am confused. For the initial $Q$-values, you generate one for each possible row $(1, 0, 0), (0,0,0), \ldots$ so you would have 4 states.
However, from the first paragraph it seems that the states themselves are matrices (one row for each user), so the state space is a set of such matrices.
That means that your $Q$-table should have a row for each possible matrix, and a column for each possible total assignment of items to users.