private static boolean next(final int[] T, final int n) {
		final int k = T.length;

		int i = k - 1;
		while (i >= 0 && T[i] == n - k + i) {
			--i;
		}
		if (i == -1) {
			return false;
		}

		final int Ti = T[i] + 1 - i;
		for (int j = i; j < k; ++j) {
			T[j] = Ti + j;
		}
		return true;
	}
Return the k-subset for the given {@code rank}.

@param rank the k-subset rank
@return the k-subset for the given {@code rank}
@throws IllegalArgumentException if the given {@code rank} is invalid
        for {@code this} k-subset
jenetics.incubator/src/main/java/io/jenetics/incubator/combinatorial/KSubset.java