private static List<Cards> choose3(Cards cards) {
        // Given a list of cards, give me back a list of the
        // complete list of subsets of size num
        int size = cards.size();
        List<Cards> subsets = new ArrayList<Cards>();
        for (int i1 = 0; i1 < size - 2; i1++) {
            Cards subset1 = new Cards();
            subset1.add(cards.get(i1));
            for (int i2 = i1 + 1; i2 < size - 1; i2++) {
                Cards subset2 = new Cards(subset1);
                subset2.add(cards.get(i2));
                for (int i3 = i2 + 1; i3 < size; i3++) {
                    Cards subset3 = new Cards(subset2);
                    subset3.add(cards.get(i3));
                    subsets.add(subset3);
                }
            }
        }
        return subsets;
    }