7つある要素から重複あり(同じ要素が何度でも使える)で4つ選ぶ組み合わせを出力します。 組み合わせなので、例えば(2,3,4,4)と(4,3,4,2)は同じとみなして1つと数えます。 詳細は「重複組合せ」で検索してみてください。
Rubyで書こうかと思っていたらPythonだとそのまんまのメソッドを持つモジュールがあったので日和りました。
と思ったらRubyでもrepeated_combinationメソッドありました。検索力が低かっただけでした。Rubyのも足しました。
Pythonのが行数が多いのは作者のPython力が低いからです。