Combinações únicas de cordas

Eu tenho um vetor que contém certas palavras

colors<-c("Yellow","Blue","Red")

> colors
[1] "Yellow" "Blue"   "Red" 

Agora eu quero criar uma nova variável,colorsCombined, em que o vetor original está presente e também todas as combinações possíveis dessas palavras.

> colorsCombined
[1] "Yellow", "Blue", "Red", "YellowBlue", "YellowRed", "BlueRed", "YellowBlueRed"

Considero YellowBlue o mesmo que BlueYellow.

Como eu faço isso?