JSFiddle - React, Tailwind, and code Playground

JavaScript

var groupArrays = {
    "group1": [
        "volvo",
        "bmw",
        "audi"
    ],
    "group2": [
        "red","green"
    ],
    "group3": [
        "1991","1992"
    ]
};

var selectors = [];
var values = [];
var ga = [];

for (var group in groupArrays) {
    ga.push(groupArrays[group]);
}

traverse(ga, 0);

console.log(selectors);

function traverse(ga, index) {
    if (index >= ga.length) {
        selectors.push("." + values.join("."));
        
        return;
    }
    
    var hold = ga[index].slice(0);
    var gacopy = ga[index];
    
    while(gacopy.length > 0) {
        var pickedValue = gacopy[gacopy.length - 1];
        values.push(pickedValue);
        gacopy.pop();
        
        traverse(ga, index + 1);
        
        values.splice(values.indexOf(pickedValue), 1);
    }
    
    ga[index] = hold;
}