Is there an algorithm to find all subsets of a set? I'm trying to find a way to find all subsets of a set.  
Is there an algorithm  to calculate this? 

First, you should notice that the only subset of an empty set is the empty set itself.
Then, 


*

*Fix some element x of the set.

*Generate all subsets of the set formed by removing x from the main set.

*These subsets are subsets of the original set.

*All of the sets formed by adding x into those subsets are subsets of the original set.


Following is an illustration:
{ A, H, I}
{    H, I} 
{       I}
{        }
now, we reach the base situation, namely empty set. Then, we will add the x that we have fixed into those subsets:
{ A, H, I} ------------------------> {A,H,I},{A,H},{A,I},{A}
                        {H,I},{H},{I},{}

{    H, I} ------------------------> {H, I},  {H},    
                      {I}, {}

{       I} ------------------------> {I},     {}
{        } ------------------------> {}
source: http://www.stanford.edu/class/archive/cs/cs106b/cs106b.1126/lectures/07/Slides07.pdf
