某所で拾った問題なのですが、わからなかったので質問します(多分学校の課題だと思います)

任意のxとnを指定しx面のサイコロをn個投げたとき、
出る目の総和sumと、sumが出る組み合わせの数casesと、
sumが出る確率probを、sumの小さい順に「sum:cases:prob」の
ように一覧表示するプログラムを書けというものです

sumはn〜x*nの範囲で1ずつ増やすとして、casesの出し方がわかりません
合計がsumになるn個の自然数の組み合わせを全て取得し、
sumが同じだったらカウントを1増やせばいいんじゃないかと
思ったのですが、どんなコードを書けばそうなるのか検討もつかず……

あるいは他のベターな方法などありましたらご教授いただければ幸いです