Self-Healing and self-optimizing service based applications are important steps towards the self-organizing Service Oriented Architectures (SOA). Self-Organizing SOAs replace services by functional equivalent services in the case of faults or in respect of quality of service. These features depend on automatic service discovery which provides service alternatives. We enter the WSC’06 contest to present a semantic service discovery system for large sets of services. A recursive algorithm builds service compositions by adding services in each iteration. The search works backwards, since we add services that produce a certain output regardless of its input parameters. A valid service composition produces a set of queried output parameters and input parameters necessary for the composed services. The algorithm is improved by using efficient data structures in our service composition system.