import collections, itertools, re
 
expr = 'd4 + (d6 > 2)'
variables = set(re.findall(r'd(\d+)', expr))
 
cnt = collections.defaultdict(int)
total = 0
for values in itertools.product(*[range(1, int(bound) + 1) for bound in variables]):
    total += 1
    tmp = expr
    for name, value in zip(variables, values):
        tmp = re.sub(r'd' + name, str(value), tmp)
    cnt[eval(tmp)] += 1
 
for value in sorted(cnt):
    print (f'{value} {100 * cnt[value]/total:.2f}')
				aW1wb3J0IGNvbGxlY3Rpb25zLCBpdGVydG9vbHMsIHJlCgpleHByID0gJ2Q0ICsgKGQ2ID4gMiknCnZhcmlhYmxlcyA9IHNldChyZS5maW5kYWxsKHInZChcZCspJywgZXhwcikpCgpjbnQgPSBjb2xsZWN0aW9ucy5kZWZhdWx0ZGljdChpbnQpCnRvdGFsID0gMApmb3IgdmFsdWVzIGluIGl0ZXJ0b29scy5wcm9kdWN0KCpbcmFuZ2UoMSwgaW50KGJvdW5kKSArIDEpIGZvciBib3VuZCBpbiB2YXJpYWJsZXNdKToKICAgIHRvdGFsICs9IDEKICAgIHRtcCA9IGV4cHIKICAgIGZvciBuYW1lLCB2YWx1ZSBpbiB6aXAodmFyaWFibGVzLCB2YWx1ZXMpOgogICAgICAgIHRtcCA9IHJlLnN1YihyJ2QnICsgbmFtZSwgc3RyKHZhbHVlKSwgdG1wKQogICAgY250W2V2YWwodG1wKV0gKz0gMQoKZm9yIHZhbHVlIGluIHNvcnRlZChjbnQpOgogICAgcHJpbnQgKGYne3ZhbHVlfSB7MTAwICogY250W3ZhbHVlXS90b3RhbDouMmZ9Jyk=