DIM list$(3) : list$() = "1", "2", "3", "4" PRINT FNpowerset(list$()) END DEF FNpowerset(list$()) IF DIM(list$(),1) > 31 ERROR 100, "Set too large to represent as integer" LOCAL i%, j%, s$ s$ = "{" FOR i% = 0 TO (2 << DIM(list$(),1)) - 1 s$ += "{" FOR j% = 0 TO DIM(list$(),1) IF i% AND (1 << j%) s$ += list$(j%) + "," NEXT IF RIGHT$(s$) = "," s$ = LEFT$(s$) s$ += "}," NEXT i% = LEFT$(s$) + "}"