The following set of active shoulder stretches can be done as a sequence. Most of the stretches are muscle assisted and so the effect is to strengthen the arms and shoulders as well as stretch them. And so you could think of these as shoulder stretching exercises.
When stretching your shoulders it can be very helpful to feel and operate your ribs, shoulder, elbow and hand. In this simple reaching exercise start with the arm relaxed, then reach up with the same-side ribs up, then your shoulder. Make the arm feel long by straightening your elbow and reaching with your fingers. Smoothly relax and repeat.
After practicing one arm at a time, try it with both arms simultaneously reaching up.
This exercise can also be used to exercise the rotation of your forearms. Start with your hands clasped in front of your chest with palms facing back. Turn your palms outwards as you lift your arms overhead. Straighten your elbows when your arms are over your head and reach up with ribs and shoulders. Return to the start and because this shoulder stretch has an asymmetrical hand position, switch the interlock of your fingers.
For this over the head shoulder stretch reach an arm overhead with the elbow straight. Grab the forearm with the other hand. Pull the straight arm out to the side to stretch the shoulder of the grabbing hand. Then pull the straight arm inwards to stretch its shoulder.
For both of these actions keep your neck feeling long and your chest open. (This actually applies for most shoulder stretches.)
For both variations, gradually resist the stretch so that your arms feel like they are working against each other.
Since the arms are already overhead you can use this opportunity to stretch your triceps. Grab the bent elbow of one arm and pull it inwards. To vary the stretch (and exercise the external rotation muscles of the arm being stretched) try to rotate the arm being stretched so that the forearm is more rearwards.
This isn't so much a shoulder stretch as it is an activation exercise. With elbows straight and wrists crossed, pull your arms outwards against each other. You'll be exercising the trapezius. This type of exercise can be helpful for shoulder flexibility since you are practicing muscle control near the limits of most peoples range of motion. Work at smoothly pulling outwards then smoothly relaxing.
This shoulder stretch looks a little like a choke hold. Start with one arm out to the side but slightly forwards and with its elbow straight. Grab onto the upper arm with the other hand. Then pull the straight arm back.
You'll be stretching the rear of the shoulder of the bent arm. You'll also be exercising the straight arm.
Repeat with the other arm on top.
This is like the previous stretch except you do it with elbows straight.
You may find that your pectoralis major cramps up in this stretch. You may find it helpful to focus on spreading your shoulder blades.
The two previous stretches can actually be used as substitutes or preparations for the eagle pose arm position. If you can actually get your arms into eagle pose then the door is open to more shoulder stretching possibilities. With forearms vertical (viewed from the front) you can tilt your arms to one side or the other. Find the side that gives you the best stretch. For me this means pulling towards the top-arm-side.
This shoulder stretch can be used to work the external rotators of the shoulders with the arms overhead or while pressing the arms overhead. With elbows bent bring your elbows together in front of your face. Keep the elbows pressing together, press your forearms backwards over your head. From there keep the elbows pressed together and try to separate your hands by rotating your upper arms externally.
This variation of penguin shoulder stretch can be done while standing. Place a hand against the side of your waist or hips with the elbow bent and pointing out to the side. Use your free hand to pull the elbow inwards.
Here again you may find it helpful to protract (spread) the shoulder blade of the arm being stretched so that the outer tip of your collar bones move forwards.
You could also do both arms at the same time and use the muscles of the shoulder to pull the elbows inwards. In this case you'll be using muscles at the front of your shoulders (and possibly the subscapularis) while stretching the back of your shoulders and possibly your rhomboids.
Repeating some tricks from the arm overhead shoulder stretching set, you can repeat the process with these two arm behind the back stretches, pulling to the straight-arm-side and then to the bent-arm-side to stretch the outside of the shoulder with elbow straight and bent respectively.
This shoulder stretch can be used as a preparation for binding poses like half bound lotus or the variation of side angle where you hook your hand on the thigh from behind your back.
Reach an arm behind your back and hook it into the palm of the other hand. Use that hand to pull the hooking hand forwards. As you can do in a bind, try to resist with the arm being stretched.
For this shoulder stretching exercise, reach arms backwards then work at retracting the shoulder blades (pulling them inwards) while at the same time pulling the arms inwards. To get the arms higher, drop the front of your chest and pull downwards and inwards on the front of your shoulders.
This could be called Dwikonasana or the "The shoulder stretch used in prasaritta padottanasana C". If you can actually clasp the hands for this pose (with elbows straight) you work the arms in a different way than in the previous stretch. Because the hands are clasped you don't have to use the rhomboids to pull the shoulder blades inwards. You can actually work the opposite muscles by pulling the hands outwards as if trying to pull the hands apart. Notice the shoulder position changes in the last two pictures. In the first picture the fronts of my shoulders are ope, in the next picture the fronts of my shoulders are moving downwards as is my chest.
If you can get into reverse prayer position you can play with it to vary the shoulder stretch. To get your hands higher try dropping the front of your chest and spreading your shoulder blades. You can also try pressing the finger tips into each other so that the palms move away from each other. Or try moving the hands to one side.
Because of the similarity in technique to penguin shoulder stretch I'm calling this "High Penguin Shoulder Stretch". Place a hand against your chin or cheek bone with elbow pointing forwards. Use the other hand to pull the elbow inwards while resisting the hand with the chin or cheekbone.
With the elbow pulled inwards towards your chest, you can use the chin to push the hand outwards so that you stretch the shoulder in external rotation.
You may find that this is a nice counterpose after reverse prayer.
For more shoulder strengthening, stretching and awareness exercises, check out the Yoga for Your Shoulders ebook.