# generate all (not necessarily induced) subgraphs of a graph

I want to, given a Sage graph G, generate all subgraphs of G and check them for some property, and store in a list those which satisfy the propery. What I'm doing currently seems very inefficient:

```
graphs_i_want=[]
for g in graphs.nauty_geng(str(G.order())):
if G.subgraph_search(g):
if check(g):
graphs_i_want.append(g.graph6_string())
```

`check(g)`

checks that g satisfies the properties I want, and it's done. Actually the code above works completely - it gives a list of the graph6 strings for every subgraph of G. However, I think it's overkill to check through all graphs, and it's also pretty slow for graphs larger than 6 vertices or so. I need it to work for more, up to maybe 15.

An iterator would be fine. I just need to check each of the graphs for some property. The code could be something like this:

```
graphs_i_want=[]
for g in all_subsets_generator(G):
if check(g):
graphs_i_want.append(g.graph6_string())
```

where `all_subsets_generator(G)`

iterates over all subsets of G.

Thanks for any advice. Let me know if more information is needed.