A naive implementation of power_set; fails in infinite case and has poor performance in finite case