Our Mathematical Selection code in Javascript.
Mathematical Selection JavaScript File:
HTML File:
Try it out!
                            
                            Mathematical Selection JavaScript File:
var words;
var r; // min length of word
var i;
var complete_group = {}, c_index = 0;
function groupSelection(candidates, size) {
    words = candidates;
    r = size;
    i = 0;
    recursiveFillUp([]);
    return complete_group;
}
// pick elements recursively
function recursiveFillUp(temp) {
    var picked_elements = [];
    var j = i;
    while (j < words.length) {
        picked_elements[j] = temp.slice(0);
        picked_elements[j].push(words[j]);
        // recoil factor
        if (i >= words.length) {
            i = j;
        }
        // satisfied yet?
        if (picked_elements[j].length == r) {
            complete_group[c_index++] = picked_elements[j];
        } else if (picked_elements[j].length < r) {
            recursiveFillUp(picked_elements[j]);
        }
        j++;
    }
    if (picked_elements[--j] !== undefined && picked_elements[j].length == r) {
        i++; // keep recoil factor straightened out
    }
}HTML File:
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Selection</title>
        <script src="Selection.js"></script>
    </head>
    <body>
        <h3>Possible Selections with Repetition</h3>
        <!-- This is where the result will be displayed when it is ready.-->
        <div id="word_select"></div>
        <script>
            var result =
                    groupSelection([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 3);
            var print = "", set, count = 0;
            for (set in result) {
                print += ++count + ": [" + result[set].join(", ") + "]<br/>";
            }
            document.getElementById("word_select").innerHTML +=
                    words.join(", ") + " selection " + r + ":<br/><br/>" + print +
                    "<br/><br/>Number of ways is " + count + ".";
        </script>
    </body>
</html>Try it out!
                            
                                
                                
                                
                                Elegance (0.0)
                                
                                
                                
                            
                        
                
        
            
            
        