In your case, if its a normal list and there is a one-one relation, then you need to get a reference of the other list in your respective dimension. So in your instance, in the product flat list, you can get a reference of product. Following are the steps how you do it
1. In the module with Product Flat List dimension, make a line item (best practice say that instead of making a property, put it in a module with that dimension) with Product Format and write a formula in 'finditem(product, name(item(product flat list)))'. You will get the mapping of product against the product flat list. Below screenshot shows the same
2. Now you can easily write a formula as first module.line item[LOOKUP:Product] * second module.line item.
In case its a numbered list, you can do this with the code of the numbered list.
This is a typical way, but not per the good practice. Best practices say that you need to maintain the properties of a dimension in your modules. One list properties increases the size in GBs because Each list item carries a memory allocation of 500 bytes per item and properties are additional to this, two it is not per Systems of PLANS way to do a module design.