Given a program $P$ I can write a new program $f(P)$ that does the following: * Let $k$ be the input for $f(P)$. * Using an unbounded loop, find the first $n_0$ such that $P(n_0)=1$. * If $k=0$, output $n_0$ and stop. * Using a bounded loop, find the largest $i\le \max(n_0, k)$ such that $P(i)=1$. * Output $i$ and stop. So far I have only transformed a program $P$ into a new program $f(P)$ -- even constructivists or intuitionists will agree that my function $f$ is explicitly computable. Now assume that $P$ computes the characteristic function of a recursive set $A$ (and is in particular total and outputs only 0 and 1). Then I claim that (constructively): 1. If $A$ is inhabited (i.e., there is some $n\in A$) then $f(P)$ is again total. 2. Every value $f(P)(k)$ is an element of $A$, i.e., $P(f(P)(k))=1$ for all $k$. 3. The function $f(P)$ is weakly monotone, i.e., $k\le k'$ implies $f(P)(k)\le f(P)(k')$. (I think that "weakly monotone" is not the same as "nondecreasing", constructively, but I assume that you meant "weakly monotone".) 4. Every $x\in A$ is a value of $f(P)$. In fact, $f(P)(x)$ first computes some value $n_0 \le x$, and then the largest $i \le x$ with $P(i)=1$, which is $x$ itself. Note: If there is an enumeration of $A$, then $A$ must be inhabited. I think that being nonempty (i.e., "from $A=\emptyset$ we can get a contradiction") is not enough.