<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def __GetInstances(self, group_name = None, state_filter=None):
 """ Get all the instances in a group, filtered by state. @param group_name: the name of the group @param state_filter: the state that the instance should be in (e.g. "running"), or None for all states """

    all_instances = self.ec2.get_all_instances()
    instances = []
    for res in all_instances:
      for group in res.groups:
        if group_name and group.name != group_name:
          continue
        for instance in res.instances:
          if state_filter == None or instance.state == state_filter:
            instances.append(instance)
    return instances