Let $S$ be a non-empty set, such that $|S|=|S+S|$. Prove that $|2^S|=|S×2^{S}|$.
I found an answer for $\mathbb{N}$. It is possible to construct two injective functions and finish the proof by using Cantor-Bernstein-Schröder theorem:
$f:2^S \rightarrow S×2^S$
$(a_1,a_2, \ldots) \mapsto (1,a_1,a_2, \ldots)$
$g:S×2^S \rightarrow 2^S$
$(n,(a_1,a_2,\ldots )) \mapsto (0,a_1,0,a_2,\ldots, 0, a_{n-1},1,a_n,0,\ldots)$ (1 on n-th place)
How can I prove this for every such a set?
I don't see a big problem to adapt your proof to an arbitrary $S$. $S$ is nonempty, so take a fixed element $x_0\in S$ to play the role that $1$ played in your proof.
Now map a subset $A\subset S, A\in 2^S$ to $(x_0, A)\in S\times 2^S$, in effect making the first injection.
For the second injection, map the pair $(x, A)$, with $x\in S, A\subset S$ into the pair $(\{x\}, A)$. As $\{x\}, A\subset S$, we can see the previous pair as a subset of $S+S$, i.e. as an element of $2^{S+S}$. (Really we take $x$ from the "first copy of $S$" and $A$ out of the "second copy of $S$".) Due to $|S+S|=|S|$ we can then map all the subsets of $S+S$ to subsets of $S$, including the one noted before. This gives you the second injection.
Finally apply Cantor-Bernstein-Schröder/ theorem.