Great my brother, I'd like you to know that your problem is the main problem in Inverse Kinematics -Infinite solutions- to get a position. To further knowing about it -> This problems name with robot arms is redundancy problem -you have DOF more than you need - it's a research point and some methods of optimization are used for it,
For a small application your solution -mentioned by our brother above- is quiet acceptable , I'd like to offer keeping a range in which the first angle changes, i.e It isn't 20 degree all the way give it say 10 degrees and compute then say 20 degrees and compute the other two and go on this way. or just remove it if you don't need
but when working on a large scale and building arms for industrial or aerospace applications more effort is but to identify the best solution. How ?
Say in an application your arm carries something from one place to another -> you like the movement is to be slow a bit and the torque to be least value so you keep the object while manipulated near the arm base but once placed in the other place. How do you like to come back to the first place ? now few burdens on you.
You may choose the shortest path (a trajectory)
You may choose the fastest (some burdens added but you have another trajectory)
I hope you got the meaning, Your problem requires further search. Good luck
(See video of a robot whose name is Justin made by DLR)