use an array of strings to generate every possible combination with a constant
<p>given a string array </p>

<pre><code>String[] values = {"A", "B", "C", "D", "E"};
</code></pre>

<p>and a constant</p>

<pre><code> final String X = "X";
</code></pre>

<p>Generate every possible way the value array can contain 0 or more X</p>

<p>i.e</p>

<pre><code>    [A, B, C, D, E]
    [A, X, X, D, E]
    [A, B, X, D, E]
    [X, X, X, X, X]
</code></pre>

<p>and so on with every possibility. Needs to be fast - bit of a brain teaser i'm having trouble making efficient. Not as easy as it sounds.</p>
