JSFiddle - React, Tailwind, and code Playground

by mgibsonbr

HTML

A: <input value="1"> B: <input value="10"> M: <input value="4"><button>Calcular</button>
<ul></ul>

JavaScript

function combinacoes(a, b, m, acc, retorno) {
        if ( acc == undefined ) acc = [];
        if ( retorno === undefined ) retorno = [];
        if ( m == 0 ) {
            retorno.push(acc);
            return retorno;
        }
        if ( a > b )
            return retorno;

        // Primeiro fazemos todas as combinações que incluem a
        combinacoes(a+1, b, m-1, acc.concat([a]), retorno);
        // Depois todas as que não incluem a
        return combinacoes(a+1, b, m, acc, retorno);
    }

$("button").click(function() {
    var ul = $("ul").empty();
    var a = parseInt($("input:eq(0)").val(), 10);
    var b = parseInt($("input:eq(1)").val(), 10);
    var m = parseInt($("input:eq(2)").val(), 10);
    $.each(combinacoes(a, b, m), function() {
        ul.append("<li>" + JSON.stringify(this) + "</li>");
    });
});