  We consider the algorithmic problem of generating each subset of
$[n]:=\{1,2,\ldots,n\}$ whose size is in some interval $[k,l]$, $0\leq k\leq
l\leq n$, exactly once (cyclically) by repeatedly adding or removing a single
element, or by exchanging a single element. For $k=0$ and $l=n$ this is the
classical problem of generating all $2^n$ subsets of $[n]$ by element
additions/removals, and for $k=l$ this is the classical problem of generating
all $\binom{n}{k}$ subsets of $[n]$ by element exchanges. We prove the
existence of such cyclic minimum-change enumerations for a large range of
values $n$, $k$, and $l$, improving upon and generalizing several previous
results. For all these existential results we provide optimal algorithms to
compute the corresponding Gray codes in constant $\mathcal{O}(1)$ time per
generated set and $\mathcal{O}(n)$ space. Rephrased in terms of graph theory,
our results establish the existence of (almost) Hamilton cycles in the subgraph
of the $n$-dimensional cube $Q_n$ induced by all levels $[k,l]$. We reduce all
remaining open cases to a generalized version of the middle levels conjecture,
which asserts that the subgraph of $Q_{2k+1}$ induced by all levels
$[k-c,k+1+c]$, $c\in\{0,1,\ldots,k\}$, has a Hamilton cycle. We also prove an
approximate version of this generalized conjecture, showing that this graph has
a cycle that visits a $(1-o(1))$-fraction of all vertices.
