You can use ShingleFilterFactory to create word combinations. You need to set tokenSeparator="" in order to remove space between tokens. You may want to leave outputUnigrams=true if you still want to search individual words.
<fieldType name="text_shingle" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.ShingleFilterFactory" minShingleSize="2" maxShingleSize="2"
outputUnigrams="true" outputUnigramsIfNoShingles="false" tokenSeparator=""/>
</analyzer>
</fieldType>
http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.ShingleFilterFactory
You need to be careful though. ShingleFilter will create combinations for everything in your document. For example "need to be carefull" will produce " needto tobe becareful." . this example looks good lets look at this one: "Are the eaters also" will produce "arethe theaters eatersalso". Query for "theaters" will result with a false positive hit.
if you are indexing short documents such as people names then I certainly suggest ShingleFilter because combinations are always used in person names. However, if you are indexing documents, you need to know what you are combining. Synonym filter may suit better in this case. You can create your combinations from a dictionary and use them with SynonymFilterFactory.