Hangt er vanaf wat je met die getallen wilt doen. Stel dat je 20 integers in een array hebt zitten, dan heb je 380 combinaties. (x.(x-1) als ik me niet vergis). Als je al die combinaties (= de resultaten van die bewerking) gewoon wil opslaan in een nieuwe array kan je dat simpelweg doen met een for-loop of een while-loop.

Code:
int i = 0;
int j = 0;
int[] array = new int[20];
int[] oplossingen = new int[array.Count()*(array.Count()-1)];
while(i < array.Count()) {
    //We combineren het element met alle elementen die in de array voor het element komen     
    for(int k = i-1;k >= 0;k--) {
        oplossingen[j] = array[i] - array[k];
        j++;
    }

    //Combineren met alle elementen die achter het element in de array komen
    for(int k = i+1;k < array.Count();k++) {
        oplossingen[j] = array[i] - array[k];
        j++;
    }
    i++;
}
Ofzoiets, heb het niet nagekeken of deze code werkt.