We can represent a monotone increasing function by just listing its values in order; for example, on from X_7 to X_5 might be {1, 2, 2, 4, 7,}. Any multiset of size 7 selected from X_5 corresponds to such a function. That might suggest some ideas.
Another way to represent the same function would be to indicate how many times each number from 1 through 7 occurs: (1, 2, 0, 1, 0, 0, 1).
Other ideas you might consider, if you have any experience with them, are partitions and stars-and-bars. You'll have to tell me what you've learned.
Once you solve (a), you can apply the same technique to the other parts.