This is the circuit I used: first I initialized the initial state as 1 / sqrt(8),1 / sqrt(8),1 / sqrt(8),1 / sqrt(8),1 / sqrt(8),1 /sqrt(8),1 /sqrt(8),1 / sqrt(8),0,0,0,0,0,0,0,0 (a four-qubit system) as
$$ |x\rangle=\frac{1}{\sqrt{8}}(1,1,1,1,1,1,1 ,1,0,0,0,0,0,0,0,0)^T $$
then I applied this inverse QFT circuit. The resultant state vector is 0. 707+0.j, 0.088-0.444j, 0, 0.088-0.059j, 0, 0.088-0.132j, 0, 0.088-0.018j, 0, 0.088+0.018j, 0, 0.088+0.132j, 0, 0.088+0.059j, 0, 0.088+0.444j (rounded values)
$$ (0.707+0i, 0.088-0.444i, 0, 0.088-0.059i, 0, 0.088-0.132i, 0, 0.088-0.018i, 0, 0.088+0.018i, 0, 0.088+0.132i, 0, 0.088+0.059i, 0, 0.088+0.444i)^T $$
Note: values are rounded
Then I negated the states of interest 0000$|0000\rangle$, 0001$|0001\rangle$, 1111$1111\rangle$ by using this circuit (I believe you guys can tell which part of it is for which states if now please let me know:
Then I applied the diffusion operator. Notice that I negated the phase of 0000$|0000\rangle$ instead of the rest. This resulted in a 180 degree$180^o$ global phase difference. In the Grover search case where all coefficients are real the result for measurement is identical to marking all the rest states but I'm not sure for complex-valued coefficient will there be any difference.
uncomment #circ.draw() to plot the circuitNote: uncomment #circ.draw() to plot the circuit